freedreno/a5xx: correct max_indicies for indirect draws
authorRob Clark <robdclark@gmail.com>
Wed, 22 Nov 2017 14:45:28 +0000 (09:45 -0500)
committerRob Clark <robdclark@gmail.com>
Sun, 3 Dec 2017 19:17:40 +0000 (14:17 -0500)
Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a5xx/fd5_draw.h

index d1069157e75d13b35689112f5fe07bfb2f12ee0c..3edfc391fdfb2763478dd1cb072c65bc6cde4578 100644 (file)
@@ -97,7 +97,8 @@ fd5_draw_emit(struct fd_batch *batch, struct fd_ringbuffer *ring,
 
                if (info->index_size) {
                        struct pipe_resource *idx = info->index.resource;
-                       unsigned max_indicies = idx->width0 / info->index_size;
+                       unsigned max_indicies = (idx->width0 - info->indirect->offset) /
+                                       info->index_size;
 
                        OUT_PKT7(ring, CP_DRAW_INDX_INDIRECT, 6);
                        OUT_RINGP(ring, DRAW4(primtype, DI_SRC_SEL_DMA,