i965: fix varying output setup

Since 7f53fead5c we treat every location as using all
four components so we only need special handling for
doubles when they cross multiple locations.

This fixes a crash in GL45-CTS.enhanced_layouts.varying_locations
where the outputs array would overflow when a dmat2 was stored at
the max varying location i.e 30.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
Timothy Arceri 2016-07-22 23:19:09 +10:00
parent c2801f9272
commit a2b3c146d2

View file

@ -68,7 +68,7 @@ fs_visitor::nir_setup_single_output_varying(fs_reg *reg,
} else {
assert(type->is_scalar() || type->is_vector());
unsigned num_iter = 1;
if (type->is_double())
if (type->is_dual_slot())
num_iter = 2;
for (unsigned count = 0; count < num_iter; count++) {
this->outputs[*location] = *reg;