Mesa (master): mesa: Fix display lists for draw_elements_base_vertex with draw_instanced.

Kenneth Graunke kwg at kemper.freedesktop.org
Wed Feb 29 23:05:43 UTC 2012


Module: Mesa
Branch: master
Commit: 871518dbf8266fe91d09e3368fe2bc90603cd3b1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=871518dbf8266fe91d09e3368fe2bc90603cd3b1

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Feb 28 13:33:52 2012 -0800

mesa: Fix display lists for draw_elements_base_vertex with draw_instanced.

Fixes piglit GL_ARB_draw_elements_base_vertex/dlist-arb_draw_instanced

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/main/dlist.c |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 0eefd40..3db7beb 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -1324,6 +1324,19 @@ save_DrawElementsInstancedARB(GLenum mode,
 	       "glDrawElementsInstanced() during display list compile");
 }
 
+static void GLAPIENTRY
+save_DrawElementsInstancedBaseVertexARB(GLenum mode,
+					GLsizei count,
+					GLenum type,
+					const GLvoid *indices,
+					GLsizei primcount,
+					GLint basevertex)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   _mesa_error(ctx, GL_INVALID_OPERATION,
+	       "glDrawElementsInstancedBaseVertex() during display list compile");
+}
+
 static void invalidate_saved_current_state( struct gl_context *ctx )
 {
    GLint i;
@@ -9696,8 +9709,6 @@ exec_MultiModeDrawElementsIBM(const GLenum * mode,
                                   modestride));
 }
 
-
-
 /**
  * Setup the given dispatch table to point to Mesa's display list
  * building functions.
@@ -10779,6 +10790,9 @@ _mesa_save_vtxfmt_init(GLvertexformat * vfmt)
    vfmt->DrawArraysInstanced = save_DrawArraysInstancedARB;
    vfmt->DrawElementsInstanced = save_DrawElementsInstancedARB;
 
+   /* GL_ARB_draw_elements_base_vertex */
+   vfmt->DrawElementsInstancedBaseVertex = save_DrawElementsInstancedBaseVertexARB;
+
    /* 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




More information about the mesa-commit mailing list