glsl: initialise killed_all field.
[mesa.git] / src / glsl / link_uniform_initializers.cpp
index 46f05261f18744b1219c7c3d97cf72ec4c155e5d..849e080970adffb5f2972a58d8089c7095b7f714 100644 (file)
@@ -132,11 +132,20 @@ set_uniform_initializer(void *mem_ctx, gl_shader_program *prog,
 
         idx += elements;
       }
+
+      if (base_type == GLSL_TYPE_SAMPLER) {
+        for (unsigned int i = 0; i < storage->array_elements; i++) {
+           prog->SamplerUnits[storage->sampler + i] = storage->storage[i].i;
+        }
+      }
    } else {
       copy_constant_to_storage(storage->storage,
                               val,
                               val->type->base_type,
                               val->type->components());
+
+      if (storage->type->is_sampler())
+        prog->SamplerUnits[storage->sampler] = storage->storage[0].i;
    }
 
    storage->initialized = true;