mesa: simplify dispatch for glDraw* functions
authorBrian Paul <brianp@vmware.com>
Thu, 2 May 2013 01:15:33 +0000 (19:15 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 2 May 2013 15:03:16 +0000 (09:03 -0600)
Remove all the glDraw* functions from the GLvertexformat structure.
The point of that dispatch struct is to handle all the functions which
dispatch differently depending on whether we're inside glBegin/End.
glDraw* are never allowed inside glBegin/End so we can remove those
entries.

This simplifies the code paths and gets rid of quite a bit of code.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mapi/glapi/gen/gl_genexec.py
src/mesa/main/dd.h
src/mesa/main/dlist.c
src/mesa/main/vtxfmt.c
src/mesa/vbo/vbo_exec.c
src/mesa/vbo/vbo_exec.h
src/mesa/vbo/vbo_exec_array.c
src/mesa/vbo/vbo_noop.c
src/mesa/vbo/vbo_save_api.c

index 826729815a51b663d4a1637fc19d07354514dbbf..e91d4e9ac37227ea84d8d8ed5932d49778e26cf7 100644 (file)
@@ -109,6 +109,7 @@ header = """/**
 #include "main/syncobj.h"
 #include "main/formatquery.h"
 #include "main/dispatch.h"
+#include "vbo/vbo.h"
 
 
 /**
@@ -128,6 +129,8 @@ _mesa_initialize_exec_table(struct gl_context *ctx)
    assert(exec != NULL);
 
    assert(ctx->Version > 0);
+
+   vbo_initialize_exec_dispatch(ctx, exec);
 """
 
 
index 916f38bd8c10feab79600c6a159049201a0c9c3a..c5d7ad419c56424c1b66cfb275cf7914a777b0c2 100644 (file)
@@ -1024,64 +1024,6 @@ typedef struct {
 
    void (GLAPIENTRYP Rectf)( GLfloat, GLfloat, GLfloat, GLfloat );
 
-   /**
-    * \name Array
-    */
-   /*@{*/
-   void (GLAPIENTRYP DrawArrays)( GLenum mode, GLint start, GLsizei count );
-   void (GLAPIENTRYP DrawElements)( GLenum mode, GLsizei count, GLenum type,
-                        const GLvoid *indices );
-   void (GLAPIENTRYP DrawRangeElements)( GLenum mode, GLuint start,
-                             GLuint end, GLsizei count,
-                             GLenum type, const GLvoid *indices );
-   void (GLAPIENTRYP MultiDrawElementsEXT)( GLenum mode, const GLsizei *count,
-                                           GLenum type,
-                                           const GLvoid **indices,
-                                           GLsizei primcount);
-   void (GLAPIENTRYP DrawElementsBaseVertex)( GLenum mode, GLsizei count,
-                                             GLenum type,
-                                             const GLvoid *indices,
-                                             GLint basevertex );
-   void (GLAPIENTRYP DrawRangeElementsBaseVertex)( GLenum mode, GLuint start,
-                                                  GLuint end, GLsizei count,
-                                                  GLenum type,
-                                                  const GLvoid *indices,
-                                                  GLint basevertex);
-   void (GLAPIENTRYP MultiDrawElementsBaseVertex)( GLenum mode,
-                                                  const GLsizei *count,
-                                                  GLenum type,
-                                                  const GLvoid * const *indices,
-                                                  GLsizei primcount,
-                                                  const GLint *basevertex);
-   void (GLAPIENTRYP DrawArraysInstanced)(GLenum mode, GLint first,
-                                          GLsizei count, GLsizei primcount);
-   void (GLAPIENTRYP DrawArraysInstancedBaseInstance)(GLenum mode, GLint first,
-                                                      GLsizei count, GLsizei primcount,
-                                                      GLuint baseinstance);
-   void (GLAPIENTRYP DrawElementsInstanced)(GLenum mode, GLsizei count,
-                                            GLenum type, const GLvoid *indices,
-                                            GLsizei primcount);
-   void (GLAPIENTRYP DrawElementsInstancedBaseInstance)(GLenum mode, GLsizei count,
-                                                        GLenum type, const GLvoid *indices,
-                                                        GLsizei primcount, GLuint baseinstance);
-   void (GLAPIENTRYP DrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count,
-                                            GLenum type, const GLvoid *indices,
-                                            GLsizei primcount, GLint basevertex);
-   void (GLAPIENTRYP DrawElementsInstancedBaseVertexBaseInstance)(GLenum mode, GLsizei count,
-                                                                  GLenum type, const GLvoid *indices,
-                                                                  GLsizei primcount, GLint basevertex,
-                                                                  GLuint baseinstance);
-   void (GLAPIENTRYP DrawTransformFeedback)(GLenum mode, GLuint name);
-   void (GLAPIENTRYP DrawTransformFeedbackStream)(GLenum mode, GLuint name,
-                                                  GLuint stream);
-   void (GLAPIENTRYP DrawTransformFeedbackInstanced)(GLenum mode, GLuint name,
-                                                     GLsizei primcount);
-   void (GLAPIENTRYP DrawTransformFeedbackStreamInstanced)(GLenum mode,
-                                                           GLuint name,
-                                                           GLuint stream,
-                                                           GLsizei primcount);
-   /*@}*/
-
    /**
     * \name Eval
     *
index 3823828ba35e1af8de51775c0d3adbcb01579814..18c05f0615b5172c6420397cf9da2baf260d6b35 100644 (file)
@@ -69,6 +69,8 @@
 
 #include "main/dispatch.h"
 
+#include "vbo/vbo.h"
+
 
 
 /**
@@ -8820,6 +8822,9 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
 
    _mesa_loopback_init_api_table(ctx, table);
 
+   /* VBO functions */
+   vbo_initialize_save_dispatch(ctx, table);
+
    /* GL 1.0 */
    SET_Accum(table, save_Accum);
    SET_AlphaFunc(table, save_AlphaFunc);
@@ -9259,6 +9264,18 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
 
    /* GL_ARB_uniform_buffer_object */
    SET_UniformBlockBinding(table, save_UniformBlockBinding);
+
+   /* GL_ARB_draw_instanced */
+   SET_DrawArraysInstancedARB(table, save_DrawArraysInstancedARB);
+   SET_DrawElementsInstancedARB(table, save_DrawElementsInstancedARB);
+
+   /* GL_ARB_draw_elements_base_vertex */
+   SET_DrawElementsInstancedBaseVertex(table, save_DrawElementsInstancedBaseVertexARB);
+
+   /* GL_ARB_base_instance */
+   SET_DrawArraysInstancedBaseInstance(table, save_DrawArraysInstancedBaseInstance);
+   SET_DrawElementsInstancedBaseInstance(table, save_DrawElementsInstancedBaseInstance);
+   SET_DrawElementsInstancedBaseVertexBaseInstance(table, save_DrawElementsInstancedBaseVertexBaseInstance);
 }
 
 
@@ -9618,34 +9635,6 @@ save_vtxfmt_init(GLvertexformat * vfmt)
    vfmt->VertexAttrib4fvARB = save_VertexAttrib4fvARB;
 
    vfmt->Rectf = save_Rectf;
-
-   /* GL_ARB_draw_instanced */
-   vfmt->DrawArraysInstanced = save_DrawArraysInstancedARB;
-   vfmt->DrawElementsInstanced = save_DrawElementsInstancedARB;
-
-   /* GL_ARB_draw_elements_base_vertex */
-   vfmt->DrawElementsInstancedBaseVertex = save_DrawElementsInstancedBaseVertexARB;
-
-   /* GL_ARB_base_instance */
-   vfmt->DrawArraysInstancedBaseInstance = save_DrawArraysInstancedBaseInstance;
-   vfmt->DrawElementsInstancedBaseInstance = save_DrawElementsInstancedBaseInstance;
-   vfmt->DrawElementsInstancedBaseVertexBaseInstance = save_DrawElementsInstancedBaseVertexBaseInstance;
-
-   /* The driver is required to implement these as
-    * 1) They can probably do a better job.
-    * 2) A lot of new mechanisms would have to be added to this module
-    *     to support it.  That code would probably never get used,
-    *     because of (1).
-    */
-#if 0
-   vfmt->DrawArrays = 0;
-   vfmt->DrawElements = 0;
-   vfmt->DrawRangeElements = 0;
-   vfmt->MultiDrawElemementsEXT = 0;
-   vfmt->DrawElementsBaseVertex = 0;
-   vfmt->DrawRangeElementsBaseVertex = 0;
-   vfmt->MultiDrawElemementsBaseVertex = 0;
-#endif
 }
 
 
index a2f4150785595c3901361b2ea8be5ca1363c6d42..db389a573f957d8255b937a474fe42de1e192633 100644 (file)
@@ -116,49 +116,6 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
       SET_Rectf(tab, vfmt->Rectf);
    }
 
-   if (!beginend) {
-      /* These functions are only valid outside glBegin/glEnd */
-      SET_DrawArrays(tab, vfmt->DrawArrays);
-      SET_DrawElements(tab, vfmt->DrawElements);
-
-      if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
-         SET_DrawRangeElements(tab, vfmt->DrawRangeElements);
-      }
-
-      SET_MultiDrawElementsEXT(tab, vfmt->MultiDrawElementsEXT);
-
-      if (_mesa_is_desktop_gl(ctx)) {
-         SET_DrawElementsBaseVertex(tab, vfmt->DrawElementsBaseVertex);
-         SET_DrawRangeElementsBaseVertex(tab,
-                                         vfmt->DrawRangeElementsBaseVertex);
-         SET_MultiDrawElementsBaseVertex(tab,
-                                         vfmt->MultiDrawElementsBaseVertex);
-         SET_DrawArraysInstancedBaseInstance(tab,
-                                     vfmt->DrawArraysInstancedBaseInstance);
-         SET_DrawElementsInstancedBaseInstance(tab,
-                                   vfmt->DrawElementsInstancedBaseInstance);
-         SET_DrawElementsInstancedBaseVertex(tab,
-                                     vfmt->DrawElementsInstancedBaseVertex);
-         SET_DrawElementsInstancedBaseVertexBaseInstance(tab,
-                         vfmt->DrawElementsInstancedBaseVertexBaseInstance);
-      }
-
-      if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
-         SET_DrawArraysInstancedARB(tab, vfmt->DrawArraysInstanced);
-         SET_DrawElementsInstancedARB(tab, vfmt->DrawElementsInstanced);
-      }
-
-      if (_mesa_is_desktop_gl(ctx)) {
-         SET_DrawTransformFeedback(tab, vfmt->DrawTransformFeedback);
-         SET_DrawTransformFeedbackStream(tab,
-                                         vfmt->DrawTransformFeedbackStream);
-         SET_DrawTransformFeedbackInstanced(tab,
-                                      vfmt->DrawTransformFeedbackInstanced);
-         SET_DrawTransformFeedbackStreamInstanced(tab,
-                                vfmt->DrawTransformFeedbackStreamInstanced);
-      }
-   }
-
    /* Originally for GL_NV_vertex_program, this is also used by dlist.c */
    if (ctx->API == API_OPENGL_COMPAT) {
       SET_VertexAttrib1fNV(tab, vfmt->VertexAttrib1fNV);
index 926e7b46ddb7445671fa0bd6577bb4d0f4a319cd..2ff1c149412a37e7e95339d6f556530eb35ea8ba 100644 (file)
@@ -48,7 +48,6 @@ void vbo_exec_init( struct gl_context *ctx )
       return;
 
    vbo_exec_vtx_init( exec );
-   vbo_exec_array_init( exec );
 
    ctx->Driver.NeedFlush = 0;
    ctx->Driver.CurrentExecPrimitive = PRIM_OUTSIDE_BEGIN_END;
@@ -69,7 +68,6 @@ void vbo_exec_destroy( struct gl_context *ctx )
    }
 
    vbo_exec_vtx_destroy( exec );
-   vbo_exec_array_destroy( exec );
 }
 
 
index bd3ab3ba6f388b33944cd95b93f478f4de762420..01e2856f2bc75f81c3734674bc6766466e55a3e6 100644 (file)
@@ -152,9 +152,6 @@ void vbo_exec_FlushVertices( struct gl_context *ctx, GLuint flags );
 
 /* Internal functions:
  */
-void vbo_exec_array_init( struct vbo_exec_context *exec );
-void vbo_exec_array_destroy( struct vbo_exec_context *exec );
-
 
 void vbo_exec_vtx_init( struct vbo_exec_context *exec );
 void vbo_exec_vtx_destroy( struct vbo_exec_context *exec );
index 875c203ac6e0915f227df4a8e5ebea3e36dfad0f..18011ec125e7e96f60bbfbefc08e2792f55d875c 100644 (file)
@@ -1364,42 +1364,6 @@ vbo_exec_DrawTransformFeedbackStreamInstanced(GLenum mode, GLuint name,
    vbo_draw_transform_feedback(ctx, mode, obj, stream, primcount);
 }
 
-/**
- * Plug in the immediate-mode vertex array drawing commands into the
- * givven vbo_exec_context object.
- */
-void
-vbo_exec_array_init( struct vbo_exec_context *exec )
-{
-   exec->vtxfmt.DrawArrays = vbo_exec_DrawArrays;
-   exec->vtxfmt.DrawElements = vbo_exec_DrawElements;
-   exec->vtxfmt.DrawRangeElements = vbo_exec_DrawRangeElements;
-   exec->vtxfmt.MultiDrawElementsEXT = vbo_exec_MultiDrawElements;
-   exec->vtxfmt.DrawElementsBaseVertex = vbo_exec_DrawElementsBaseVertex;
-   exec->vtxfmt.DrawRangeElementsBaseVertex = vbo_exec_DrawRangeElementsBaseVertex;
-   exec->vtxfmt.MultiDrawElementsBaseVertex = vbo_exec_MultiDrawElementsBaseVertex;
-   exec->vtxfmt.DrawArraysInstanced = vbo_exec_DrawArraysInstanced;
-   exec->vtxfmt.DrawArraysInstancedBaseInstance = vbo_exec_DrawArraysInstancedBaseInstance;
-   exec->vtxfmt.DrawElementsInstanced = vbo_exec_DrawElementsInstanced;
-   exec->vtxfmt.DrawElementsInstancedBaseInstance = vbo_exec_DrawElementsInstancedBaseInstance;
-   exec->vtxfmt.DrawElementsInstancedBaseVertex = vbo_exec_DrawElementsInstancedBaseVertex;
-   exec->vtxfmt.DrawElementsInstancedBaseVertexBaseInstance = vbo_exec_DrawElementsInstancedBaseVertexBaseInstance;
-   exec->vtxfmt.DrawTransformFeedback = vbo_exec_DrawTransformFeedback;
-   exec->vtxfmt.DrawTransformFeedbackStream =
-         vbo_exec_DrawTransformFeedbackStream;
-   exec->vtxfmt.DrawTransformFeedbackInstanced =
-         vbo_exec_DrawTransformFeedbackInstanced;
-   exec->vtxfmt.DrawTransformFeedbackStreamInstanced =
-         vbo_exec_DrawTransformFeedbackStreamInstanced;
-}
-
-
-void
-vbo_exec_array_destroy( struct vbo_exec_context *exec )
-{
-   /* nothing to do */
-}
-
 
 /**
  * Initialize the dispatch table with the VBO functions for drawing.
index bc43bc9e63cbbb9275d0ccf1c0dc8f8e82462347..41046e54db41d9e50c6aeeb41534bb95f56a7e91 100644 (file)
@@ -353,56 +353,6 @@ _mesa_noop_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
 }
 
 
-static void GLAPIENTRY
-_mesa_noop_DrawArrays(GLenum mode, GLint start, GLsizei count)
-{
-}
-
-static void GLAPIENTRY
-_mesa_noop_DrawElements(GLenum mode, GLsizei count, GLenum type,
-                        const GLvoid * indices)
-{
-}
-
-static void GLAPIENTRY
-_mesa_noop_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
-                                  const GLvoid * indices, GLint basevertex)
-{
-}
-
-
-static void GLAPIENTRY
-_mesa_noop_DrawRangeElements(GLenum mode,
-                             GLuint start, GLuint end,
-                             GLsizei count, GLenum type,
-                             const GLvoid * indices)
-{
-}
-
-static void GLAPIENTRY
-_mesa_noop_MultiDrawElements(GLenum mode, const GLsizei * count, GLenum type,
-                             const GLvoid ** indices, GLsizei primcount)
-{
-}
-
-static void GLAPIENTRY
-_mesa_noop_DrawRangeElementsBaseVertex(GLenum mode,
-                                       GLuint start, GLuint end,
-                                       GLsizei count, GLenum type,
-                                       const GLvoid * indices,
-                                       GLint basevertex)
-{
-}
-
-static void GLAPIENTRY
-_mesa_noop_MultiDrawElementsBaseVertex(GLenum mode, const GLsizei * count,
-                                       GLenum type,
-                                       const GLvoid * const *indices,
-                                       GLsizei primcount,
-                                       const GLint * basevertex)
-{
-}
-
 static void GLAPIENTRY
 _mesa_noop_EvalMesh1(GLenum mode, GLint i1, GLint i2)
 {
@@ -496,14 +446,6 @@ _mesa_noop_vtxfmt_init(GLvertexformat * vfmt)
    vfmt->VertexAttrib4fvARB = _mesa_noop_VertexAttrib4fvARB;
 
    vfmt->Rectf = _mesa_noop_Rectf;
-
-   vfmt->DrawArrays = _mesa_noop_DrawArrays;
-   vfmt->DrawElements = _mesa_noop_DrawElements;
-   vfmt->DrawRangeElements = _mesa_noop_DrawRangeElements;
-   vfmt->MultiDrawElementsEXT = _mesa_noop_MultiDrawElements;
-   vfmt->DrawElementsBaseVertex = _mesa_noop_DrawElementsBaseVertex;
-   vfmt->DrawRangeElementsBaseVertex = _mesa_noop_DrawRangeElementsBaseVertex;
-   vfmt->MultiDrawElementsBaseVertex = _mesa_noop_MultiDrawElementsBaseVertex;
 }
 
 
index 8644df828d42616689c650481c6edba8c28e6cee..a174ded2d29bef75b2409a575c10f53b0ac9714e 100644 (file)
@@ -993,162 +993,6 @@ _save_End(void)
 }
 
 
-/* These are all errors as this vtxfmt is only installed inside
- * begin/end pairs.
- */
-static void GLAPIENTRY
-_save_DrawElements(GLenum mode, GLsizei count, GLenum type,
-                   const GLvoid * indices)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) count;
-   (void) type;
-   (void) indices;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glDrawElements");
-}
-
-
-static void GLAPIENTRY
-_save_DrawRangeElements(GLenum mode, GLuint start, GLuint end,
-                        GLsizei count, GLenum type, const GLvoid * indices)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) start;
-   (void) end;
-   (void) count;
-   (void) type;
-   (void) indices;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glDrawRangeElements");
-}
-
-
-static void GLAPIENTRY
-_save_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
-                             const GLvoid * indices, GLint basevertex)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) count;
-   (void) type;
-   (void) indices;
-   (void) basevertex;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glDrawElements");
-}
-
-
-static void GLAPIENTRY
-_save_DrawRangeElementsBaseVertex(GLenum mode,
-                                  GLuint start,
-                                  GLuint end,
-                                  GLsizei count,
-                                  GLenum type,
-                                  const GLvoid * indices, GLint basevertex)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) start;
-   (void) end;
-   (void) count;
-   (void) type;
-   (void) indices;
-   (void) basevertex;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glDrawRangeElements");
-}
-
-
-static void GLAPIENTRY
-_save_DrawArrays(GLenum mode, GLint start, GLsizei count)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) start;
-   (void) count;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glDrawArrays");
-}
-
-
-static void GLAPIENTRY
-_save_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type,
-                        const GLvoid **indices, GLsizei primcount)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) count;
-   (void) type;
-   (void) indices;
-   (void) primcount;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glMultiDrawElements");
-}
-
-
-static void GLAPIENTRY
-_save_MultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count,
-                                  GLenum type, const GLvoid * const *indices,
-                                  GLsizei primcount, const GLint *basevertex)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) count;
-   (void) type;
-   (void) indices;
-   (void) primcount;
-   (void) basevertex;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION,
-                       "glMultiDrawElementsBaseVertex");
-}
-
-
-static void GLAPIENTRY
-_save_DrawTransformFeedback(GLenum mode, GLuint name)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) name;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION, "glDrawTransformFeedback");
-}
-
-
-static void GLAPIENTRY
-_save_DrawTransformFeedbackStream(GLenum mode, GLuint name, GLuint stream)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) name;
-   (void) stream;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION,
-                       "glDrawTransformFeedbackStream");
-}
-
-
-static void GLAPIENTRY
-_save_DrawTransformFeedbackInstanced(GLenum mode, GLuint name,
-                                     GLsizei primcount)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) name;
-   (void) primcount;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION,
-                       "glDrawTransformFeedbackInstanced");
-}
-
-
-static void GLAPIENTRY
-_save_DrawTransformFeedbackStreamInstanced(GLenum mode, GLuint name,
-                                           GLuint stream, GLsizei primcount)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   (void) mode;
-   (void) name;
-   (void) stream;
-   (void) primcount;
-   _mesa_compile_error(ctx, GL_INVALID_OPERATION,
-                       "glDrawTransformFeedbackStreamInstanced");
-}
-
-
 static void GLAPIENTRY
 _save_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
 {
@@ -1535,18 +1379,6 @@ _save_vtxfmt_init(struct gl_context *ctx)
     */
    vfmt->Begin = _save_Begin;
    vfmt->Rectf = _save_Rectf;
-   vfmt->DrawArrays = _save_DrawArrays;
-   vfmt->DrawElements = _save_DrawElements;
-   vfmt->DrawRangeElements = _save_DrawRangeElements;
-   vfmt->DrawElementsBaseVertex = _save_DrawElementsBaseVertex;
-   vfmt->DrawRangeElementsBaseVertex = _save_DrawRangeElementsBaseVertex;
-   vfmt->MultiDrawElementsEXT = _save_MultiDrawElements;
-   vfmt->MultiDrawElementsBaseVertex = _save_MultiDrawElementsBaseVertex;
-   vfmt->DrawTransformFeedback = _save_DrawTransformFeedback;
-   vfmt->DrawTransformFeedbackStream = _save_DrawTransformFeedbackStream;
-   vfmt->DrawTransformFeedbackInstanced = _save_DrawTransformFeedbackInstanced;
-   vfmt->DrawTransformFeedbackStreamInstanced =
-         _save_DrawTransformFeedbackStreamInstanced;
 }
 
 
@@ -1762,9 +1594,4 @@ vbo_save_api_init(struct vbo_save_context *save)
     * ctx->ListState.
     */
    ctx->ListState.ListVtxfmt.Rectf = _save_OBE_Rectf;
-   ctx->ListState.ListVtxfmt.DrawArrays = _save_OBE_DrawArrays;
-   ctx->ListState.ListVtxfmt.DrawElements = _save_OBE_DrawElements;
-   ctx->ListState.ListVtxfmt.DrawRangeElements = _save_OBE_DrawRangeElements;
-   ctx->ListState.ListVtxfmt.MultiDrawElementsEXT = _save_OBE_MultiDrawElements;
-   ctx->ListState.ListVtxfmt.MultiDrawElementsBaseVertex = _save_OBE_MultiDrawElementsBaseVertex;
 }