glsl2: Don't assert in a couple of places when encountering sampler arrays.
Fixes glean shaderAPI.
This commit is contained in:
+6
-4
@@ -793,11 +793,13 @@ assign_uniform_locations(struct gl_shader_program *prog)
|
||||
if ((var == NULL) || (var->mode != ir_var_uniform))
|
||||
continue;
|
||||
|
||||
if (var->type->is_sampler())
|
||||
continue;
|
||||
|
||||
const unsigned vec4_slots = (var->component_slots() + 3) / 4;
|
||||
assert(vec4_slots != 0);
|
||||
if (vec4_slots == 0) {
|
||||
/* If we've got a sampler or an aggregate of them, the size can
|
||||
* end up zero. Don't allocate any space.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
|
||||
uniform_node *n = (uniform_node *) hash_table_find(ht, var->name);
|
||||
if (n == NULL) {
|
||||
|
||||
@@ -518,6 +518,11 @@ type_size(const struct glsl_type *type)
|
||||
size += type_size(type->fields.structure[i].type);
|
||||
}
|
||||
return size;
|
||||
case GLSL_TYPE_SAMPLER:
|
||||
/* Samplers take up no register space, since they're baked in at
|
||||
* link time.
|
||||
*/
|
||||
return 0;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user