Mesa (master): st/mesa & v_bug_mgr: two small instanced drawing fixes

Christian König deathsimple at kemper.freedesktop.org
Mon Feb 28 01:20:13 UTC 2011


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

Author: Christian König <deathsimple at vodafone.de>
Date:   Mon Feb 28 01:54:36 2011 +0100

st/mesa & v_bug_mgr: two small instanced drawing fixes

---

 src/gallium/auxiliary/util/u_vbuf_mgr.c |    5 ++++-
 src/mesa/state_tracker/st_draw.c        |    2 ++
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.c b/src/gallium/auxiliary/util/u_vbuf_mgr.c
index dec8dd7..3cf8ee0 100644
--- a/src/gallium/auxiliary/util/u_vbuf_mgr.c
+++ b/src/gallium/auxiliary/util/u_vbuf_mgr.c
@@ -531,7 +531,10 @@ static void u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr,
          unsigned first, size;
          boolean flushed;
 
-         if (vb->stride) {
+         if (mgr->ve->ve[i].instance_divisor) {
+            first = 0;
+            size = vb->buffer->width0;
+         } else if (vb->stride) {
             first = vb->stride * min_index;
             size = vb->stride * count;
          } else {
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index 6530a06..c99eafb 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -579,6 +579,7 @@ st_validate_varrays(struct gl_context *ctx,
    if (is_interleaved_arrays(vp, vpv, arrays)) {
       setup_interleaved_attribs(ctx, vp, vpv, arrays, vbuffer, velements,
                                 max_index);
+
       num_vbuffers = 1;
       num_velements = vpv->num_inputs;
       if (num_velements == 0)
@@ -645,6 +646,7 @@ st_draw_vbo(struct gl_context *ctx,
       for (i = 0; i < nr_prims; i++) {
          min_index = MIN2(min_index, prims[i].start);
          max_index = MAX2(max_index, prims[i].start + prims[i].count - 1);
+         max_index = MAX2(max_index, prims[i].num_instances);
       }
    }
 




More information about the mesa-commit mailing list