Module: Mesa
Branch: main
Commit: 2f205caea484e3882a209d4262f2f1ce1e0734a8
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f205caea484e3882a209d4262f2f1ce1e0734a8

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>

---

 src/gallium/drivers/etnaviv/etnaviv_shader.c | 1 +
 1 file changed, 1 insertion(+)

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;
 

Reply via email to