From: Rob Clark Date: Tue, 25 Aug 2020 20:02:34 +0000 (-0700) Subject: freedreno/a6xx: fix hang with large render target X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=commitdiff_plain;h=39d00722b22a0059bbc58f0158a22f384519cd39 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: --- 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);