From: Rob Clark Date: Mon, 9 Jun 2014 17:36:24 +0000 (-0400) Subject: freedreno: try for more squarish tile dimensions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3394900dd33fbbe98a639e4e7945c0e6c2d9fc2b;p=mesa.git freedreno: try for more squarish tile dimensions Worth about ~0.5fps in xonotic, for example. Signed-off-by: Rob Clark --- diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.c b/src/gallium/drivers/freedreno/freedreno_gmem.c index 861ebf5675e..661458fe0aa 100644 --- a/src/gallium/drivers/freedreno/freedreno_gmem.c +++ b/src/gallium/drivers/freedreno/freedreno_gmem.c @@ -128,11 +128,17 @@ calculate_tiles(struct fd_context *ctx) bin_w = align(width / nbins_x, 32); } - /* then find a bin height that satisfies the memory constraints: + /* then find a bin width/height that satisfies the memory + * constraints: */ while ((bin_w * bin_h * cpp) > gmem_size) { - nbins_y++; - bin_h = align(height / nbins_y, 32); + if (bin_w > bin_h) { + nbins_x++; + bin_w = align(width / nbins_x, 32); + } else { + nbins_y++; + bin_h = align(height / nbins_y, 32); + } } DBG("using %d bins of size %dx%d", nbins_x*nbins_y, bin_w, bin_h);