diff --git a/src/panfrost/lib/pan_desc.c b/src/panfrost/lib/pan_desc.c index c4ccd0320e7..53f9a6459da 100644 --- a/src/panfrost/lib/pan_desc.c +++ b/src/panfrost/lib/pan_desc.c @@ -354,15 +354,23 @@ pan_bytes_per_pixel_tib(enum pipe_format format) static unsigned pan_cbuf_bytes_per_pixel(const struct pan_fb_info *fb) { + /* dummy/non-existent render-targets use RGBA8 UNORM, e.g 4 bytes */ + const unsigned dummy_rt_size = 4 * fb->nr_samples; + unsigned sum = 0; + if (!fb->rt_count) { + /* The HW needs at least one render-target */ + return dummy_rt_size; + } + for (int cb = 0; cb < fb->rt_count; ++cb) { + unsigned rt_size = dummy_rt_size; const struct pan_image_view *rt = fb->rts[cb].view; + if (rt) + rt_size = pan_bytes_per_pixel_tib(rt->format) * rt->nr_samples; - if (!rt) - continue; - - sum += pan_bytes_per_pixel_tib(rt->format) * rt->nr_samples; + sum += rt_size; } return sum;