Mesa (master): freedreno: try for more squarish tile dimensions
Rob Clark
robclark at kemper.freedesktop.org
Fri Jun 13 19:39:45 UTC 2014
Module: Mesa
Branch: master
Commit: 3394900dd33fbbe98a639e4e7945c0e6c2d9fc2b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3394900dd33fbbe98a639e4e7945c0e6c2d9fc2b
Author: Rob Clark <robclark at freedesktop.org>
Date: Mon Jun 9 13:36:24 2014 -0400
freedreno: try for more squarish tile dimensions
Worth about ~0.5fps in xonotic, for example.
Signed-off-by: Rob Clark <robclark at freedesktop.org>
---
src/gallium/drivers/freedreno/freedreno_gmem.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.c b/src/gallium/drivers/freedreno/freedreno_gmem.c
index 861ebf5..661458f 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);
More information about the mesa-commit
mailing list