summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2015-11-02 00:02:54 -0500
committerSamuel Iglesias Gonsálvez <[email protected]>2016-05-10 11:25:04 +0200
commit76de7af8e22c7f7b174bca765f9f86a5beef963c (patch)
tree4fde5ac462a2e266886ba2cbd162b015c5c90e96 /src/mesa
parent3210870b34ac64ccdc399778ba306ce452ac7e88 (diff)
i965: fixup uniform setup for doubles
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp b/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp
index 636340add35..15d99fa2738 100644
--- a/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp
+++ b/src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp
@@ -104,6 +104,11 @@ brw_nir_setup_glsl_uniform(gl_shader_stage stage, nir_variable *var,
unsigned vector_count = (MAX2(storage->array_elements, 1) *
storage->type->matrix_columns);
unsigned vector_size = storage->type->vector_elements;
+ unsigned max_vector_size = 4;
+ if (storage->type->base_type == GLSL_TYPE_DOUBLE) {
+ vector_size *= 2;
+ max_vector_size *= 2;
+ }
for (unsigned s = 0; s < vector_count; s++) {
unsigned i;
@@ -113,7 +118,7 @@ brw_nir_setup_glsl_uniform(gl_shader_stage stage, nir_variable *var,
if (!is_scalar) {
/* Pad out with zeros if needed (only needed for vec4) */
- for (; i < 4; i++) {
+ for (; i < max_vector_size; i++) {
static const gl_constant_value zero = { 0.0 };
stage_prog_data->param[uniform_index++] = &zero;
}