Mesa (master): st/mesa: implement and advertise GL_ARB_draw_elements_base_vertex

Brian Paul brianp at kemper.freedesktop.org
Tue Jul 20 17:54:03 UTC 2010


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Jun  5 19:32:29 2010 +0200

st/mesa: implement and advertise GL_ARB_draw_elements_base_vertex

Signed-off-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/state_tracker/st_draw.c       |    7 ++++---
 src/mesa/state_tracker/st_extensions.c |    1 +
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index 7fdaff4..5821da4 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -695,7 +695,8 @@ st_draw_vbo(GLcontext *ctx,
             unsigned prim = translate_prim(ctx, prims[i].mode);
 
             if (u_trim_pipe_prim(prims[i].mode, &vcount)) {
-               pipe->draw_range_elements(pipe, indexBuf, indexSize, 0,
+               pipe->draw_range_elements(pipe, indexBuf, indexSize,
+                                         prims[i].basevertex,
                                          min_index, max_index, prim,
                                          prims[i].start + indexOffset, vcount);
             }
@@ -710,7 +711,7 @@ st_draw_vbo(GLcontext *ctx,
                if (prims[i].num_instances == 1) {
                   pipe->draw_elements(pipe, indexBuf,
                                       indexSize,
-                                      0, /* indexBias */
+                                      prims[i].basevertex,
                                       prim,
                                       prims[i].start + indexOffset,
                                       vcount);
@@ -718,7 +719,7 @@ st_draw_vbo(GLcontext *ctx,
                else {
                   pipe->draw_elements_instanced(pipe, indexBuf,
                                                 indexSize,
-                                                0, /* indexBias */
+                                                prims[i].basevertex,
                                                 prim,
                                                 prims[i].start + indexOffset,
                                                 vcount,
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index c5326fe..d23ac0c 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -180,6 +180,7 @@ void st_init_extensions(struct st_context *st)
     * Extensions that are supported by all Gallium drivers:
     */
    ctx->Extensions.ARB_copy_buffer = GL_TRUE;
+   ctx->Extensions.ARB_draw_elements_base_vertex = GL_TRUE;
    ctx->Extensions.ARB_fragment_coord_conventions = GL_TRUE;
    ctx->Extensions.ARB_fragment_program = GL_TRUE;
    ctx->Extensions.ARB_map_buffer_range = GL_TRUE;




More information about the mesa-commit mailing list