From c6f19e87acaacc5be5980b98f6fa4398a22895f3 Mon Sep 17 00:00:00 2001 From: Caterina Shablia Date: Wed, 28 May 2025 12:08:23 +0000 Subject: [PATCH] panvk: ensure we don't go over the hardware FAU limit All the Malis in existence out there support at most 64 user-supplied FAUs. Reviewed-by: Olivia Lee Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/vulkan/panvk_vX_shader.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c index 5b20a0ba4dc..845b4c6296b 100644 --- a/src/panfrost/vulkan/panvk_vX_shader.c +++ b/src/panfrost/vulkan/panvk_vX_shader.c @@ -692,8 +692,12 @@ lower_load_push_consts(nir_shader *nir, struct panvk_shader *shader) * blend constants are never loaded from the fragment shader, but might be * needed in the blend shader. */ shader->fau.sysval_count = BITSET_COUNT(shader->fau.used_sysvals); + /* 32 FAUs (256 bytes) are reserved for API push constants */ + assert(shader->fau.sysval_count <= 64 - 32 && "too many sysval FAUs"); shader->fau.total_count = shader->fau.sysval_count + BITSET_COUNT(shader->fau.used_push_consts); + assert(shader->fau.total_count <= 64 && + "asking for more FAUs than the hardware has to offer"); if (!progress) return;