freedreno/a6xx: fix DRAW_IDX_INDIRECT max_indicies
authorRob Clark <robdclark@gmail.com>
Tue, 26 Feb 2019 12:56:58 +0000 (07:56 -0500)
committerRob Clark <robdclark@gmail.com>
Tue, 26 Feb 2019 18:19:44 +0000 (13:19 -0500)
The indirect offset does not effect the index buffer size.  Fixes all of
dEQP-GLES31.functional.draw_indirect.compute_interop.large.drawelements_combined_grid_100x100_drawcount_*
with drawcount > 1.

Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a6xx/fd6_draw.c

index 9ed79cbcb7fce3ce9291bea3db0b8d9ff4dab1ae..c278d09d9d6e9301a923e9d5f74ec399937d6de1 100644 (file)
@@ -53,8 +53,7 @@ draw_emit_indirect(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->indirect->offset) /
-                       info->index_size;
+               unsigned max_indicies = idx->width0 / info->index_size;
 
                OUT_PKT7(ring, CP_DRAW_INDX_INDIRECT, 6);
                OUT_RINGP(ring, DRAW4(primtype, DI_SRC_SEL_DMA,