From 2c6e3d822ba6f03fe208da3c6228d796895b3008 Mon Sep 17 00:00:00 2001
From: Ilia Mirkin <imirkin@alum.mit.edu>
Date: Wed, 22 Oct 2014 00:42:04 -0400
Subject: freedreno: pass number of instances to draw

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
---
 src/gallium/drivers/freedreno/freedreno_draw.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

(limited to 'src/gallium/drivers/freedreno/freedreno_draw.h')

diff --git a/src/gallium/drivers/freedreno/freedreno_draw.h b/src/gallium/drivers/freedreno/freedreno_draw.h
index 6c890e7b97e..25e102f5067 100644
--- a/src/gallium/drivers/freedreno/freedreno_draw.h
+++ b/src/gallium/drivers/freedreno/freedreno_draw.h
@@ -46,6 +46,7 @@ fd_draw(struct fd_context *ctx, struct fd_ringbuffer *ring,
 		enum pc_di_primtype primtype,
 		enum pc_di_vis_cull_mode vismode,
 		enum pc_di_src_sel src_sel, uint32_t count,
+		uint8_t instances,
 		enum pc_di_index_size idx_type,
 		uint32_t idx_size, uint32_t idx_offset,
 		struct fd_bo *idx_bo)
@@ -63,7 +64,7 @@ fd_draw(struct fd_context *ctx, struct fd_ringbuffer *ring,
 		OUT_PKT3(ring, CP_DRAW_INDX, 3);
 		OUT_RING(ring, 0x00000000);
 		OUT_RING(ring, DRAW(1, DI_SRC_SEL_AUTO_INDEX,
-				INDEX_SIZE_IGN, USE_VISIBILITY));
+							INDEX_SIZE_IGN, USE_VISIBILITY, 0));
 		OUT_RING(ring, 0);             /* NumIndices */
 
 		/* ugg, hard-code register offset to avoid pulling in the
@@ -79,10 +80,10 @@ fd_draw(struct fd_context *ctx, struct fd_ringbuffer *ring,
 		/* leave vis mode blank for now, it will be patched up when
 		 * we know if we are binning or not
 		 */
-		OUT_RINGP(ring, DRAW(primtype, src_sel, idx_type, 0),
+		OUT_RINGP(ring, DRAW(primtype, src_sel, idx_type, 0, instances),
 				&ctx->draw_patches);
 	} else {
-		OUT_RING(ring, DRAW(primtype, src_sel, idx_type, vismode));
+		OUT_RING(ring, DRAW(primtype, src_sel, idx_type, vismode, instances));
 	}
 	OUT_RING(ring, count);             /* NumIndices */
 	if (idx_bo) {
@@ -138,7 +139,8 @@ fd_draw_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
 	}
 
 	fd_draw(ctx, ring, ctx->primtypes[info->mode], vismode, src_sel,
-			info->count, idx_type, idx_size, idx_offset, idx_bo);
+			info->count, info->instance_count - 1,
+			idx_type, idx_size, idx_offset, idx_bo);
 }
 
 #endif /* FREEDRENO_DRAW_H_ */
-- 
cgit v1.2.3