gl_linked_shader *consumer)
{
glsl_symbol_table parameters;
- struct explicit_location_info explicit_locations[MAX_VARYING][4] = { 0 };
+ struct explicit_location_info output_explicit_locations[MAX_VARYING][4] = { 0 };
+ struct explicit_location_info input_explicit_locations[MAX_VARYING][4] = { 0 };
/* Find all shader outputs in the "producer" stage.
*/
* differently because they do not need to have matching names.
*/
if (!validate_explicit_variable_location(ctx,
- explicit_locations,
+ output_explicit_locations,
var, prog, producer)) {
return;
}
compute_variable_location_slot(input, consumer->Stage);
unsigned slot_limit = idx + num_elements;
+ if (!validate_explicit_variable_location(ctx,
+ input_explicit_locations,
+ input, prog, consumer)) {
+ return;
+ }
+
while (idx < slot_limit) {
if (idx >= MAX_VARYING) {
linker_error(prog,
return;
}
- output = explicit_locations[idx][input->data.location_frac].var;
+ output = output_explicit_locations[idx][input->data.location_frac].var;
if (output == NULL ||
input->data.location != output->data.location) {