etnaviv: Clear lbl_usage array correctly
authorWladimir J. van der Laan <laanwj@gmail.com>
Sun, 23 Jul 2017 11:24:39 +0000 (13:24 +0200)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Sun, 23 Jul 2017 19:52:44 +0000 (21:52 +0200)
Fill the entire array instead of just a quarter. This avoids
crashes with large shaders.
(currently this never causes a problem because shaders larger than 2048/4
instructions are not supported by this driver on any hardware, but it will
cause problems in the future)

Fixes: ec436051899 ("etnaviv: fix shader miscompilation with more than 16 labels")
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_compiler.c

index cc6bfc9425d2805ef09f8a3df55f455fe36d9961..165ab74298a4ee0ac7245e8ef54cd715d80be00f 100644 (file)
@@ -2353,7 +2353,7 @@ etna_compile_shader(struct etna_shader_variant *v)
    if (!c)
       return false;
 
-   memset(&c->lbl_usage, -1, ARRAY_SIZE(c->lbl_usage));
+   memset(&c->lbl_usage, -1, sizeof(c->lbl_usage));
 
    const struct tgsi_token *tokens = v->shader->tokens;