summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2016-07-27 15:03:39 -0700
committerEric Anholt <[email protected]>2016-08-22 11:52:26 -0700
commitf4d143f0d9736f4413bcb9e778bf92b97684e6f9 (patch)
tree47eb215597eea2e389200b7008ea43a7b958314f /src
parentbdb54cdc163e8fe395b2965b8254f0f7d1c42a51 (diff)
vc4: Use proper type sizes for uniforms.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/vc4/vc4_program.c9
1 files 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);
}
}