From d11351c616d15e00c91b5c3ca1543bf18e92e836 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 31 Mar 2022 10:39:51 -0400 Subject: [PATCH] panfrost: Control tiler memory usage Ensure we don't hit OOM when rendering at 8192x8192 on Valhall by disabling the smallest bin size of the hierarchy mask. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/lib/pan_cs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/panfrost/lib/pan_cs.c b/src/panfrost/lib/pan_cs.c index b76d408595c..76e69f43021 100644 --- a/src/panfrost/lib/pan_cs.c +++ b/src/panfrost/lib/pan_cs.c @@ -867,6 +867,15 @@ GENX(pan_emit_tiler_ctx)(const struct panfrost_device *dev, pan_pack(out, TILER_CONTEXT, tiler) { /* TODO: Select hierarchy mask more effectively */ tiler.hierarchy_mask = (max_levels >= 8) ? 0xFF : 0x28; + + /* For large framebuffers, disable the smallest bin size to + * avoid pathological tiler memory usage. Required to avoid OOM + * on dEQP-GLES31.functional.fbo.no_attachments.maximums.all on + * Mali-G57. + */ + if (MAX2(fb_width, fb_height) >= 4096) + tiler.hierarchy_mask &= ~1; + tiler.fb_width = fb_width; tiler.fb_height = fb_height; tiler.heap = heap;