i965/fs: fix number of output components for doubles

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Iago Toral Quiroga 2016-05-09 10:14:18 +02:00 committed by Samuel Iglesias Gonsálvez
parent 0297f1021a
commit 3cce67aff0

View file

@ -103,10 +103,15 @@ fs_visitor::nir_setup_single_output_varying(fs_reg *reg,
}
} else {
assert(type->is_scalar() || type->is_vector());
this->outputs[*location] = *reg;
this->output_components[*location] = type->vector_elements;
*reg = offset(*reg, bld, 4);
(*location)++;
unsigned num_elements = type->vector_elements;
if (type->is_double())
num_elements *= 2;
for (unsigned count = 0; count < num_elements; count += 4) {
this->outputs[*location] = *reg;
this->output_components[*location] = MIN2(4, num_elements - count);
*reg = offset(*reg, bld, 4);
(*location)++;
}
}
}