Mesa (master): nvc0: don't apply base vertex to per-instance arrays

Christoph Bumiller chrisbmr at kemper.freedesktop.org
Sun Jan 23 12:12:55 UTC 2011


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

Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date:   Fri Jan 21 16:46:36 2011 +0100

nvc0: don't apply base vertex to per-instance arrays

---

 src/gallium/drivers/nvc0/nvc0_push.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/nvc0/nvc0_push.c b/src/gallium/drivers/nvc0/nvc0_push.c
index 74c3451..fcbb7da 100644
--- a/src/gallium/drivers/nvc0/nvc0_push.c
+++ b/src/gallium/drivers/nvc0/nvc0_push.c
@@ -217,6 +217,7 @@ nvc0_push_vbo(struct nvc0_context *nvc0, const struct pipe_draw_info *info)
    struct push_context ctx;
    unsigned i, index_size;
    unsigned inst = info->instance_count;
+   boolean apply_bias = info->indexed && info->index_bias;
 
    ctx.chan = nvc0->screen->base.channel;
    ctx.translate = nvc0->vertex->translate;
@@ -230,7 +231,8 @@ nvc0_push_vbo(struct nvc0_context *nvc0, const struct pipe_draw_info *info)
 
       data = nvc0_resource_map_offset(nvc0, res,
                                       vb->buffer_offset, NOUVEAU_BO_RD);
-      if (info->indexed)
+
+      if (apply_bias && likely(!(nvc0->vertex->instance_bufs & (1 << i))))
          data += info->index_bias * vb->stride;
 
       ctx.translate->set_buffer(ctx.translate, i, data, vb->stride, ~0);




More information about the mesa-commit mailing list