diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.c b/src/gallium/drivers/etnaviv/etnaviv_shader.c index 804b7c48253..a1e4a0fe3d5 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_shader.c +++ b/src/gallium/drivers/etnaviv/etnaviv_shader.c @@ -435,6 +435,8 @@ etna_shader_variant(struct etna_shader *shader, struct etna_shader_key key, { struct etna_shader_variant *v; + assert(shader->specs->fragment_sampler_count <= ARRAY_SIZE(key.tex_swizzle)); + for (v = shader->variants; v; v = v->next) if (etna_shader_key_equal(&key, &v->key)) return v; diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.h b/src/gallium/drivers/etnaviv/etnaviv_shader.h index 58a56b184d7..eaf0c37e0d0 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_shader.h +++ b/src/gallium/drivers/etnaviv/etnaviv_shader.h @@ -59,8 +59,8 @@ struct etna_shader_key }; int num_texture_states; - nir_lower_tex_shadow_swizzle tex_swizzle[PIPE_MAX_SHADER_SAMPLER_VIEWS]; - enum compare_func tex_compare_func[PIPE_MAX_SHADER_SAMPLER_VIEWS]; + nir_lower_tex_shadow_swizzle tex_swizzle[16]; + enum compare_func tex_compare_func[16]; }; static inline bool