From 1f7b3884c9ba3f176e096c8aa4dff19fad0453cb Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 20 Apr 2019 23:39:29 +0000 Subject: [PATCH] panfrost/midgard: Pipe through varying arrays Varying arrays sometimes are lowered to a series of directly accessed varyings (which we handled okay), but when indirectly accessed, they appear as a single array; we need to handle this as well. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index 67c1d59d85a..ce758f5555b 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard_compile.c +++ b/src/gallium/drivers/panfrost/midgard/midgard_compile.c @@ -3417,7 +3417,11 @@ midgard_compile_shader_nir(nir_shader *nir, midgard_program *program, bool is_bl nir_foreach_variable(var, varyings) { unsigned loc = var->data.driver_location; - program->varyings[loc] = var->data.location; + unsigned sz = glsl_type_size(var->type, FALSE); + + for (int c = 0; c < sz; ++c) { + program->varyings[loc + c] = var->data.location; + } } /* Lower gl_Position pre-optimisation */