nir: fix lowering arrays to elements for XFB outputs
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 10 Sep 2018 19:59:31 +0000 (21:59 +0200)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 22 Jan 2019 16:42:56 +0000 (10:42 -0600)
commitb2bbd978d0b1c85919c6f3b5f631b3c6cbaaaf8a
tree258f9f53e9c0f392ea77589090ce310b50e41ccc
parent9f4e0aa7c1f9d71e6716295a1ee5b78e70ed6f37
nir: fix lowering arrays to elements for XFB outputs

If we have a transform feedback output like:

float[2] x2_out (VARYING_SLOT_VAR1.x, 0, 0)

which is lowered by nir_lower_io_arrays_to_elements to,

float x2_out (VARYING_SLOT_VAR1.x, 0, 0)
float x2_out@5 (VARYING_SLOT_VAR2.x, 0, 0)

We have to update the destination offset to avoid overwriting
the same value.

v2 (Jason Ekstrand):
 - Compute the correct offsets for arrays of vectors and/or doubles

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com>
src/compiler/nir/nir_lower_io_arrays_to_elements.c