#undef ERROR
#define ERROR(err) _mesa_error(ctx, err, __func__)
-#define TAG(x) vbo_##x
+#define TAG(x) vbo_exec_##x
#include "vbo_attrib_tmp.h"
* this may be a (partial) no-op.
*/
static void GLAPIENTRY
-vbo_Materialfv(GLenum face, GLenum pname, const GLfloat *params)
+vbo_exec_Materialfv(GLenum face, GLenum pname, const GLfloat *params)
{
GLbitfield updateMats;
GET_CURRENT_CONTEXT(ctx);
struct gl_context *ctx = exec->ctx;
GLvertexformat *vfmt = &exec->vtxfmt;
- vfmt->ArrayElement = _ae_ArrayElement;
+#define NAME_AE(x) _ae_##x
+#define NAME_CALLLIST(x) _mesa_##x
+#define NAME(x) vbo_exec_##x
+#define NAME_ES(x) _es_##x
- vfmt->Begin = vbo_exec_Begin;
- vfmt->End = vbo_exec_End;
- vfmt->PrimitiveRestartNV = vbo_exec_PrimitiveRestartNV;
-
- vfmt->CallList = _mesa_CallList;
- vfmt->CallLists = _mesa_CallLists;
-
- vfmt->EvalCoord1f = vbo_exec_EvalCoord1f;
- vfmt->EvalCoord1fv = vbo_exec_EvalCoord1fv;
- vfmt->EvalCoord2f = vbo_exec_EvalCoord2f;
- vfmt->EvalCoord2fv = vbo_exec_EvalCoord2fv;
- vfmt->EvalPoint1 = vbo_exec_EvalPoint1;
- vfmt->EvalPoint2 = vbo_exec_EvalPoint2;
-
- /* from attrib_tmp.h:
- */
- vfmt->Color3f = vbo_Color3f;
- vfmt->Color3fv = vbo_Color3fv;
- vfmt->Color4f = vbo_Color4f;
- vfmt->Color4fv = vbo_Color4fv;
- vfmt->FogCoordfEXT = vbo_FogCoordfEXT;
- vfmt->FogCoordfvEXT = vbo_FogCoordfvEXT;
- vfmt->MultiTexCoord1fARB = vbo_MultiTexCoord1f;
- vfmt->MultiTexCoord1fvARB = vbo_MultiTexCoord1fv;
- vfmt->MultiTexCoord2fARB = vbo_MultiTexCoord2f;
- vfmt->MultiTexCoord2fvARB = vbo_MultiTexCoord2fv;
- vfmt->MultiTexCoord3fARB = vbo_MultiTexCoord3f;
- vfmt->MultiTexCoord3fvARB = vbo_MultiTexCoord3fv;
- vfmt->MultiTexCoord4fARB = vbo_MultiTexCoord4f;
- vfmt->MultiTexCoord4fvARB = vbo_MultiTexCoord4fv;
- vfmt->Normal3f = vbo_Normal3f;
- vfmt->Normal3fv = vbo_Normal3fv;
- vfmt->SecondaryColor3fEXT = vbo_SecondaryColor3fEXT;
- vfmt->SecondaryColor3fvEXT = vbo_SecondaryColor3fvEXT;
- vfmt->TexCoord1f = vbo_TexCoord1f;
- vfmt->TexCoord1fv = vbo_TexCoord1fv;
- vfmt->TexCoord2f = vbo_TexCoord2f;
- vfmt->TexCoord2fv = vbo_TexCoord2fv;
- vfmt->TexCoord3f = vbo_TexCoord3f;
- vfmt->TexCoord3fv = vbo_TexCoord3fv;
- vfmt->TexCoord4f = vbo_TexCoord4f;
- vfmt->TexCoord4fv = vbo_TexCoord4fv;
- vfmt->Vertex2f = vbo_Vertex2f;
- vfmt->Vertex2fv = vbo_Vertex2fv;
- vfmt->Vertex3f = vbo_Vertex3f;
- vfmt->Vertex3fv = vbo_Vertex3fv;
- vfmt->Vertex4f = vbo_Vertex4f;
- vfmt->Vertex4fv = vbo_Vertex4fv;
-
- if (ctx->API == API_OPENGLES2) {
- vfmt->VertexAttrib1fARB = _es_VertexAttrib1f;
- vfmt->VertexAttrib1fvARB = _es_VertexAttrib1fv;
- vfmt->VertexAttrib2fARB = _es_VertexAttrib2f;
- vfmt->VertexAttrib2fvARB = _es_VertexAttrib2fv;
- vfmt->VertexAttrib3fARB = _es_VertexAttrib3f;
- vfmt->VertexAttrib3fvARB = _es_VertexAttrib3fv;
- vfmt->VertexAttrib4fARB = _es_VertexAttrib4f;
- vfmt->VertexAttrib4fvARB = _es_VertexAttrib4fv;
- } else {
- vfmt->VertexAttrib1fARB = vbo_VertexAttrib1fARB;
- vfmt->VertexAttrib1fvARB = vbo_VertexAttrib1fvARB;
- vfmt->VertexAttrib2fARB = vbo_VertexAttrib2fARB;
- vfmt->VertexAttrib2fvARB = vbo_VertexAttrib2fvARB;
- vfmt->VertexAttrib3fARB = vbo_VertexAttrib3fARB;
- vfmt->VertexAttrib3fvARB = vbo_VertexAttrib3fvARB;
- vfmt->VertexAttrib4fARB = vbo_VertexAttrib4fARB;
- vfmt->VertexAttrib4fvARB = vbo_VertexAttrib4fvARB;
- }
-
- /* Note that VertexAttrib4fNV is used from dlist.c and api_arrayelt.c so
- * they can have a single entrypoint for updating any of the legacy
- * attribs.
- */
- vfmt->VertexAttrib1fNV = vbo_VertexAttrib1fNV;
- vfmt->VertexAttrib1fvNV = vbo_VertexAttrib1fvNV;
- vfmt->VertexAttrib2fNV = vbo_VertexAttrib2fNV;
- vfmt->VertexAttrib2fvNV = vbo_VertexAttrib2fvNV;
- vfmt->VertexAttrib3fNV = vbo_VertexAttrib3fNV;
- vfmt->VertexAttrib3fvNV = vbo_VertexAttrib3fvNV;
- vfmt->VertexAttrib4fNV = vbo_VertexAttrib4fNV;
- vfmt->VertexAttrib4fvNV = vbo_VertexAttrib4fvNV;
-
- /* integer-valued */
- vfmt->VertexAttribI1i = vbo_VertexAttribI1i;
- vfmt->VertexAttribI2i = vbo_VertexAttribI2i;
- vfmt->VertexAttribI3i = vbo_VertexAttribI3i;
- vfmt->VertexAttribI4i = vbo_VertexAttribI4i;
- vfmt->VertexAttribI2iv = vbo_VertexAttribI2iv;
- vfmt->VertexAttribI3iv = vbo_VertexAttribI3iv;
- vfmt->VertexAttribI4iv = vbo_VertexAttribI4iv;
-
- /* unsigned integer-valued */
- vfmt->VertexAttribI1ui = vbo_VertexAttribI1ui;
- vfmt->VertexAttribI2ui = vbo_VertexAttribI2ui;
- vfmt->VertexAttribI3ui = vbo_VertexAttribI3ui;
- vfmt->VertexAttribI4ui = vbo_VertexAttribI4ui;
- vfmt->VertexAttribI2uiv = vbo_VertexAttribI2uiv;
- vfmt->VertexAttribI3uiv = vbo_VertexAttribI3uiv;
- vfmt->VertexAttribI4uiv = vbo_VertexAttribI4uiv;
-
- vfmt->Materialfv = vbo_Materialfv;
-
- vfmt->EdgeFlag = vbo_EdgeFlag;
- vfmt->Indexf = vbo_Indexf;
- vfmt->Indexfv = vbo_Indexfv;
-
- /* ARB_vertex_type_2_10_10_10_rev */
- vfmt->VertexP2ui = vbo_VertexP2ui;
- vfmt->VertexP2uiv = vbo_VertexP2uiv;
- vfmt->VertexP3ui = vbo_VertexP3ui;
- vfmt->VertexP3uiv = vbo_VertexP3uiv;
- vfmt->VertexP4ui = vbo_VertexP4ui;
- vfmt->VertexP4uiv = vbo_VertexP4uiv;
-
- vfmt->TexCoordP1ui = vbo_TexCoordP1ui;
- vfmt->TexCoordP1uiv = vbo_TexCoordP1uiv;
- vfmt->TexCoordP2ui = vbo_TexCoordP2ui;
- vfmt->TexCoordP2uiv = vbo_TexCoordP2uiv;
- vfmt->TexCoordP3ui = vbo_TexCoordP3ui;
- vfmt->TexCoordP3uiv = vbo_TexCoordP3uiv;
- vfmt->TexCoordP4ui = vbo_TexCoordP4ui;
- vfmt->TexCoordP4uiv = vbo_TexCoordP4uiv;
-
- vfmt->MultiTexCoordP1ui = vbo_MultiTexCoordP1ui;
- vfmt->MultiTexCoordP1uiv = vbo_MultiTexCoordP1uiv;
- vfmt->MultiTexCoordP2ui = vbo_MultiTexCoordP2ui;
- vfmt->MultiTexCoordP2uiv = vbo_MultiTexCoordP2uiv;
- vfmt->MultiTexCoordP3ui = vbo_MultiTexCoordP3ui;
- vfmt->MultiTexCoordP3uiv = vbo_MultiTexCoordP3uiv;
- vfmt->MultiTexCoordP4ui = vbo_MultiTexCoordP4ui;
- vfmt->MultiTexCoordP4uiv = vbo_MultiTexCoordP4uiv;
-
- vfmt->NormalP3ui = vbo_NormalP3ui;
- vfmt->NormalP3uiv = vbo_NormalP3uiv;
-
- vfmt->ColorP3ui = vbo_ColorP3ui;
- vfmt->ColorP3uiv = vbo_ColorP3uiv;
- vfmt->ColorP4ui = vbo_ColorP4ui;
- vfmt->ColorP4uiv = vbo_ColorP4uiv;
-
- vfmt->SecondaryColorP3ui = vbo_SecondaryColorP3ui;
- vfmt->SecondaryColorP3uiv = vbo_SecondaryColorP3uiv;
-
- vfmt->VertexAttribP1ui = vbo_VertexAttribP1ui;
- vfmt->VertexAttribP1uiv = vbo_VertexAttribP1uiv;
- vfmt->VertexAttribP2ui = vbo_VertexAttribP2ui;
- vfmt->VertexAttribP2uiv = vbo_VertexAttribP2uiv;
- vfmt->VertexAttribP3ui = vbo_VertexAttribP3ui;
- vfmt->VertexAttribP3uiv = vbo_VertexAttribP3uiv;
- vfmt->VertexAttribP4ui = vbo_VertexAttribP4ui;
- vfmt->VertexAttribP4uiv = vbo_VertexAttribP4uiv;
-
- vfmt->VertexAttribL1d = vbo_VertexAttribL1d;
- vfmt->VertexAttribL2d = vbo_VertexAttribL2d;
- vfmt->VertexAttribL3d = vbo_VertexAttribL3d;
- vfmt->VertexAttribL4d = vbo_VertexAttribL4d;
-
- vfmt->VertexAttribL1dv = vbo_VertexAttribL1dv;
- vfmt->VertexAttribL2dv = vbo_VertexAttribL2dv;
- vfmt->VertexAttribL3dv = vbo_VertexAttribL3dv;
- vfmt->VertexAttribL4dv = vbo_VertexAttribL4dv;
-
- vfmt->VertexAttribL1ui64ARB = vbo_VertexAttribL1ui64ARB;
- vfmt->VertexAttribL1ui64vARB = vbo_VertexAttribL1ui64vARB;
+#include "vbo_init_tmp.h"
}
void GLAPIENTRY
_es_Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
{
- vbo_Color4f(r, g, b, a);
+ vbo_exec_Color4f(r, g, b, a);
}
void GLAPIENTRY
_es_Normal3f(GLfloat x, GLfloat y, GLfloat z)
{
- vbo_Normal3f(x, y, z);
+ vbo_exec_Normal3f(x, y, z);
}
void GLAPIENTRY
_es_MultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
{
- vbo_MultiTexCoord4f(target, s, t, r, q);
+ vbo_exec_MultiTexCoord4f(target, s, t, r, q);
}
void GLAPIENTRY
_es_Materialfv(GLenum face, GLenum pname, const GLfloat *params)
{
- vbo_Materialfv(face, pname, params);
+ vbo_exec_Materialfv(face, pname, params);
}
GLfloat p[4];
p[0] = param;
p[1] = p[2] = p[3] = 0.0F;
- vbo_Materialfv(face, pname, p);
+ vbo_exec_Materialfv(face, pname, p);
}
--- /dev/null
+/**************************************************************************
+ *
+ * Copyright 2020 Advanced Micro Devices, Inc.
+ * 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, sub license, 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 (including the
+ * next paragraph) 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 NON-INFRINGEMENT.
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS 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.
+ *
+ **************************************************************************/
+
+vfmt->ArrayElement = NAME_AE(ArrayElement);
+
+vfmt->Begin = NAME(Begin);
+vfmt->End = NAME(End);
+vfmt->PrimitiveRestartNV = NAME(PrimitiveRestartNV);
+
+vfmt->CallList = NAME_CALLLIST(CallList);
+vfmt->CallLists = NAME_CALLLIST(CallLists);
+
+vfmt->EvalCoord1f = NAME(EvalCoord1f);
+vfmt->EvalCoord1fv = NAME(EvalCoord1fv);
+vfmt->EvalCoord2f = NAME(EvalCoord2f);
+vfmt->EvalCoord2fv = NAME(EvalCoord2fv);
+vfmt->EvalPoint1 = NAME(EvalPoint1);
+vfmt->EvalPoint2 = NAME(EvalPoint2);
+
+vfmt->Color3f = NAME(Color3f);
+vfmt->Color3fv = NAME(Color3fv);
+vfmt->Color4f = NAME(Color4f);
+vfmt->Color4fv = NAME(Color4fv);
+vfmt->FogCoordfEXT = NAME(FogCoordfEXT);
+vfmt->FogCoordfvEXT = NAME(FogCoordfvEXT);
+vfmt->MultiTexCoord1fARB = NAME(MultiTexCoord1f);
+vfmt->MultiTexCoord1fvARB = NAME(MultiTexCoord1fv);
+vfmt->MultiTexCoord2fARB = NAME(MultiTexCoord2f);
+vfmt->MultiTexCoord2fvARB = NAME(MultiTexCoord2fv);
+vfmt->MultiTexCoord3fARB = NAME(MultiTexCoord3f);
+vfmt->MultiTexCoord3fvARB = NAME(MultiTexCoord3fv);
+vfmt->MultiTexCoord4fARB = NAME(MultiTexCoord4f);
+vfmt->MultiTexCoord4fvARB = NAME(MultiTexCoord4fv);
+vfmt->Normal3f = NAME(Normal3f);
+vfmt->Normal3fv = NAME(Normal3fv);
+vfmt->SecondaryColor3fEXT = NAME(SecondaryColor3fEXT);
+vfmt->SecondaryColor3fvEXT = NAME(SecondaryColor3fvEXT);
+vfmt->TexCoord1f = NAME(TexCoord1f);
+vfmt->TexCoord1fv = NAME(TexCoord1fv);
+vfmt->TexCoord2f = NAME(TexCoord2f);
+vfmt->TexCoord2fv = NAME(TexCoord2fv);
+vfmt->TexCoord3f = NAME(TexCoord3f);
+vfmt->TexCoord3fv = NAME(TexCoord3fv);
+vfmt->TexCoord4f = NAME(TexCoord4f);
+vfmt->TexCoord4fv = NAME(TexCoord4fv);
+vfmt->Vertex2f = NAME(Vertex2f);
+vfmt->Vertex2fv = NAME(Vertex2fv);
+vfmt->Vertex3f = NAME(Vertex3f);
+vfmt->Vertex3fv = NAME(Vertex3fv);
+vfmt->Vertex4f = NAME(Vertex4f);
+vfmt->Vertex4fv = NAME(Vertex4fv);
+
+if (ctx->API == API_OPENGLES2) {
+ vfmt->VertexAttrib1fARB = NAME_ES(VertexAttrib1f);
+ vfmt->VertexAttrib1fvARB = NAME_ES(VertexAttrib1fv);
+ vfmt->VertexAttrib2fARB = NAME_ES(VertexAttrib2f);
+ vfmt->VertexAttrib2fvARB = NAME_ES(VertexAttrib2fv);
+ vfmt->VertexAttrib3fARB = NAME_ES(VertexAttrib3f);
+ vfmt->VertexAttrib3fvARB = NAME_ES(VertexAttrib3fv);
+ vfmt->VertexAttrib4fARB = NAME_ES(VertexAttrib4f);
+ vfmt->VertexAttrib4fvARB = NAME_ES(VertexAttrib4fv);
+} else {
+ vfmt->VertexAttrib1fARB = NAME(VertexAttrib1fARB);
+ vfmt->VertexAttrib1fvARB = NAME(VertexAttrib1fvARB);
+ vfmt->VertexAttrib2fARB = NAME(VertexAttrib2fARB);
+ vfmt->VertexAttrib2fvARB = NAME(VertexAttrib2fvARB);
+ vfmt->VertexAttrib3fARB = NAME(VertexAttrib3fARB);
+ vfmt->VertexAttrib3fvARB = NAME(VertexAttrib3fvARB);
+ vfmt->VertexAttrib4fARB = NAME(VertexAttrib4fARB);
+ vfmt->VertexAttrib4fvARB = NAME(VertexAttrib4fvARB);
+}
+
+/* Note that VertexAttrib4fNV is used from dlist.c and api_arrayelt.c so
+ * they can have a single entrypoint for updating any of the legacy
+ * attribs.
+ */
+vfmt->VertexAttrib1fNV = NAME(VertexAttrib1fNV);
+vfmt->VertexAttrib1fvNV = NAME(VertexAttrib1fvNV);
+vfmt->VertexAttrib2fNV = NAME(VertexAttrib2fNV);
+vfmt->VertexAttrib2fvNV = NAME(VertexAttrib2fvNV);
+vfmt->VertexAttrib3fNV = NAME(VertexAttrib3fNV);
+vfmt->VertexAttrib3fvNV = NAME(VertexAttrib3fvNV);
+vfmt->VertexAttrib4fNV = NAME(VertexAttrib4fNV);
+vfmt->VertexAttrib4fvNV = NAME(VertexAttrib4fvNV);
+
+/* integer-valued */
+vfmt->VertexAttribI1i = NAME(VertexAttribI1i);
+vfmt->VertexAttribI2i = NAME(VertexAttribI2i);
+vfmt->VertexAttribI3i = NAME(VertexAttribI3i);
+vfmt->VertexAttribI4i = NAME(VertexAttribI4i);
+vfmt->VertexAttribI2iv = NAME(VertexAttribI2iv);
+vfmt->VertexAttribI3iv = NAME(VertexAttribI3iv);
+vfmt->VertexAttribI4iv = NAME(VertexAttribI4iv);
+
+/* unsigned integer-valued */
+vfmt->VertexAttribI1ui = NAME(VertexAttribI1ui);
+vfmt->VertexAttribI2ui = NAME(VertexAttribI2ui);
+vfmt->VertexAttribI3ui = NAME(VertexAttribI3ui);
+vfmt->VertexAttribI4ui = NAME(VertexAttribI4ui);
+vfmt->VertexAttribI2uiv = NAME(VertexAttribI2uiv);
+vfmt->VertexAttribI3uiv = NAME(VertexAttribI3uiv);
+vfmt->VertexAttribI4uiv = NAME(VertexAttribI4uiv);
+
+vfmt->Materialfv = NAME(Materialfv);
+
+vfmt->EdgeFlag = NAME(EdgeFlag);
+vfmt->Indexf = NAME(Indexf);
+vfmt->Indexfv = NAME(Indexfv);
+
+/* ARB_vertex_type_2_10_10_10_rev */
+vfmt->VertexP2ui = NAME(VertexP2ui);
+vfmt->VertexP2uiv = NAME(VertexP2uiv);
+vfmt->VertexP3ui = NAME(VertexP3ui);
+vfmt->VertexP3uiv = NAME(VertexP3uiv);
+vfmt->VertexP4ui = NAME(VertexP4ui);
+vfmt->VertexP4uiv = NAME(VertexP4uiv);
+
+vfmt->TexCoordP1ui = NAME(TexCoordP1ui);
+vfmt->TexCoordP1uiv = NAME(TexCoordP1uiv);
+vfmt->TexCoordP2ui = NAME(TexCoordP2ui);
+vfmt->TexCoordP2uiv = NAME(TexCoordP2uiv);
+vfmt->TexCoordP3ui = NAME(TexCoordP3ui);
+vfmt->TexCoordP3uiv = NAME(TexCoordP3uiv);
+vfmt->TexCoordP4ui = NAME(TexCoordP4ui);
+vfmt->TexCoordP4uiv = NAME(TexCoordP4uiv);
+
+vfmt->MultiTexCoordP1ui = NAME(MultiTexCoordP1ui);
+vfmt->MultiTexCoordP1uiv = NAME(MultiTexCoordP1uiv);
+vfmt->MultiTexCoordP2ui = NAME(MultiTexCoordP2ui);
+vfmt->MultiTexCoordP2uiv = NAME(MultiTexCoordP2uiv);
+vfmt->MultiTexCoordP3ui = NAME(MultiTexCoordP3ui);
+vfmt->MultiTexCoordP3uiv = NAME(MultiTexCoordP3uiv);
+vfmt->MultiTexCoordP4ui = NAME(MultiTexCoordP4ui);
+vfmt->MultiTexCoordP4uiv = NAME(MultiTexCoordP4uiv);
+
+vfmt->NormalP3ui = NAME(NormalP3ui);
+vfmt->NormalP3uiv = NAME(NormalP3uiv);
+
+vfmt->ColorP3ui = NAME(ColorP3ui);
+vfmt->ColorP3uiv = NAME(ColorP3uiv);
+vfmt->ColorP4ui = NAME(ColorP4ui);
+vfmt->ColorP4uiv = NAME(ColorP4uiv);
+
+vfmt->SecondaryColorP3ui = NAME(SecondaryColorP3ui);
+vfmt->SecondaryColorP3uiv = NAME(SecondaryColorP3uiv);
+
+vfmt->VertexAttribP1ui = NAME(VertexAttribP1ui);
+vfmt->VertexAttribP1uiv = NAME(VertexAttribP1uiv);
+vfmt->VertexAttribP2ui = NAME(VertexAttribP2ui);
+vfmt->VertexAttribP2uiv = NAME(VertexAttribP2uiv);
+vfmt->VertexAttribP3ui = NAME(VertexAttribP3ui);
+vfmt->VertexAttribP3uiv = NAME(VertexAttribP3uiv);
+vfmt->VertexAttribP4ui = NAME(VertexAttribP4ui);
+vfmt->VertexAttribP4uiv = NAME(VertexAttribP4uiv);
+
+vfmt->VertexAttribL1d = NAME(VertexAttribL1d);
+vfmt->VertexAttribL2d = NAME(VertexAttribL2d);
+vfmt->VertexAttribL3d = NAME(VertexAttribL3d);
+vfmt->VertexAttribL4d = NAME(VertexAttribL4d);
+
+vfmt->VertexAttribL1dv = NAME(VertexAttribL1dv);
+vfmt->VertexAttribL2dv = NAME(VertexAttribL2dv);
+vfmt->VertexAttribL3dv = NAME(VertexAttribL3dv);
+vfmt->VertexAttribL4dv = NAME(VertexAttribL4dv);
+
+vfmt->VertexAttribL1ui64ARB = NAME(VertexAttribL1ui64ARB);
+vfmt->VertexAttribL1ui64vARB = NAME(VertexAttribL1ui64vARB);