From 1dc7b9b08b6a272693f85e956ec3c4e498823a65 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 26 Jul 2021 13:11:18 -0400 Subject: [PATCH] zink: use array size in spirv bo length calculations I don't know why I was dropping this, but doing so breaks drivers that have optimization passes based on the lengths of these variables Fixes: c1cdf30a119 ("zink: apply Delete All The Code methodology to the ubo/ssbo variables") Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 43770bba54b..c32c6fe3651 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -844,7 +844,7 @@ unbreak_bos(nir_shader *shader) const struct glsl_type *type = glsl_without_array(var->type); if (type_is_counter(type)) continue; - unsigned size = glsl_count_attribute_slots(type, false); + unsigned size = glsl_count_attribute_slots(glsl_type_is_array(var->type) ? var->type : type, false); if (var->data.mode == nir_var_mem_ubo) max_ubo_size = MAX2(max_ubo_size, size); else