From f4d143f0d9736f4413bcb9e778bf92b97684e6f9 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 27 Jul 2016 15:03:39 -0700 Subject: [PATCH] vc4: Use proper type sizes for uniforms. --- src/gallium/drivers/vc4/vc4_program.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 8b508310e75..1e8542fc27f 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -37,6 +37,7 @@ #include "vc4_context.h" #include "vc4_qpu.h" #include "vc4_qir.h" +#include "mesa/state_tracker/st_glsl_types.h" #ifdef USE_VC4_SIMULATOR #include "simpenrose/simpenrose.h" #endif @@ -1486,11 +1487,11 @@ static void ntq_setup_uniforms(struct vc4_compile *c) { nir_foreach_variable(var, &c->s->uniforms) { - unsigned array_len = MAX2(glsl_get_length(var->type), 1); - unsigned array_elem_size = 4 * sizeof(float); + uint32_t vec4_count = st_glsl_type_size(var->type); + unsigned vec4_size = 4 * sizeof(float); - declare_uniform_range(c, var->data.driver_location * array_elem_size, - array_len * array_elem_size); + declare_uniform_range(c, var->data.driver_location * vec4_size, + vec4_count * vec4_size); } } -- 2.30.2