From 39d00722b22a0059bbc58f0158a22f384519cd39 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 25 Aug 2020 13:02:34 -0700 Subject: [PATCH] freedreno/a6xx: fix hang with large render target It seems we do have some limits. Similar to older gens, # of tiles per pipe cannot be more than 32. But I could not trigger any hangs with 16 or more tiles per pipe in either X or Y direction, so that limit does not seem to apply. Signed-off-by: Rob Clark Part-of: --- src/gallium/drivers/freedreno/a6xx/fd6_gmem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c index 236151e01a7..eb4cbbf52df 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c @@ -254,7 +254,8 @@ use_hw_binning(struct fd_batch *batch) { const struct fd_gmem_stateobj *gmem = batch->gmem_state; - // TODO figure out hw limits for binning + if ((gmem->maxpw * gmem->maxph) > 32) + return false; return fd_binning_enabled && ((gmem->nbins_x * gmem->nbins_y) >= 2) && (batch->num_draws > 0); -- 2.30.2