Mesa (master): r600g: only set the index type if drawing is indexed

Marek Olšák mareko at kemper.freedesktop.org
Wed Jul 18 05:19:57 UTC 2012


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Wed Jul 18 06:13:34 2012 +0200

r600g: only set the index type if drawing is indexed

---

 src/gallium/drivers/r600/r600_state_common.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index d114093..d3d0983 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1089,13 +1089,14 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *dinfo)
 	}
 
 	/* draw packet */
-	cs->buf[cs->cdw++] = PKT3(PKT3_INDEX_TYPE, 0, rctx->predicate_drawing);
-	cs->buf[cs->cdw++] = ib.index_size == 4 ?
-				(VGT_INDEX_32 | (R600_BIG_ENDIAN ? VGT_DMA_SWAP_32_BIT : 0)) :
-				(VGT_INDEX_16 | (R600_BIG_ENDIAN ? VGT_DMA_SWAP_16_BIT : 0));
 	cs->buf[cs->cdw++] = PKT3(PKT3_NUM_INSTANCES, 0, rctx->predicate_drawing);
 	cs->buf[cs->cdw++] = info.instance_count;
 	if (info.indexed) {
+		cs->buf[cs->cdw++] = PKT3(PKT3_INDEX_TYPE, 0, rctx->predicate_drawing);
+		cs->buf[cs->cdw++] = ib.index_size == 4 ?
+					(VGT_INDEX_32 | (R600_BIG_ENDIAN ? VGT_DMA_SWAP_32_BIT : 0)) :
+					(VGT_INDEX_16 | (R600_BIG_ENDIAN ? VGT_DMA_SWAP_16_BIT : 0));
+
 		va = r600_resource_va(ctx->screen, ib.buffer);
 		va += ib.offset;
 		cs->buf[cs->cdw++] = PKT3(PKT3_DRAW_INDEX, 3, rctx->predicate_drawing);




More information about the mesa-commit mailing list