Module: Mesa Branch: staging/23.3 Commit: fcdb403f3bcda3925127d5fb71f932ed7c5d34ba URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fcdb403f3bcda3925127d5fb71f932ed7c5d34ba
Author: Christian Gmeiner <cgmei...@igalia.com> Date: Wed Dec 13 10:19:29 2023 +0100 etnaviv: Add static_assert(..) to catch memory corruption When we start to support GPUs with more then 16 varyings the code base tells us that there is some work to do. Cc: mesa-stable Signed-off-by: Christian Gmeiner <cgmei...@igalia.com> Reviewed-by: Lucas Stach <l.st...@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26662> (cherry picked from commit 2f205caea484e3882a209d4262f2f1ce1e0734a8) --- .pick_status.json | 2 +- src/gallium/drivers/etnaviv/etnaviv_shader.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 5e972977d1c..1f4a1332b67 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -264,7 +264,7 @@ "description": "etnaviv: Add static_assert(..) to catch memory corruption", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.c b/src/gallium/drivers/etnaviv/etnaviv_shader.c index e0054f94332..d0567d717a3 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_shader.c +++ b/src/gallium/drivers/etnaviv/etnaviv_shader.c @@ -147,6 +147,7 @@ etna_link_shaders(struct etna_context *ctx, struct compiled_shader_state *cs, COND(last_varying_2x, VIVS_RA_CONTROL_LAST_VARYING_2X); cs->PA_ATTRIBUTE_ELEMENT_COUNT = VIVS_PA_ATTRIBUTE_ELEMENT_COUNT_COUNT(link.num_varyings); + STATIC_ASSERT(VIVS_PA_SHADER_ATTRIBUTES__LEN >= ETNA_NUM_VARYINGS); for (int idx = 0; idx < link.num_varyings; ++idx) cs->PA_SHADER_ATTRIBUTES[idx] = link.varyings[idx].pa_attributes;