nir/xfb: handle arrays and AoA of basic types
authorAlejandro Piñeiro <apinheiro@igalia.com>
Thu, 10 Jan 2019 14:04:37 +0000 (15:04 +0100)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Fri, 8 Mar 2019 14:00:50 +0000 (15:00 +0100)
commitb2a212ac2edfd326e6b4faa011bf08dc301a6a47
tree2259db1ac9ed4513d01ed6f39df34fcca00b56de
parent2b65fecd8571f2f31633493b6c2d37bedef61c80
nir/xfb: handle arrays and AoA of basic types

On OpenGL, a array of a simple type adds just one varying. So
gl_transform_feedback_varying_info struct defined at mtypes.h includes
the parameters Type (base_type) and Size (number of elements).

This commit checks this when the recursive add_var_xfb_outputs call
handles arrays, to ensure that just one is addded.

We also need to take into account AoA here

v2: use glsl_type_is_leaf from nir_types (Timothy Arceri)

v3: simplified aoa check, without the need ot using glsl_type_is_leaf,
    using glsl_types_is_struct (Timothy Arceri)

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/compiler/nir/nir_gather_xfb_info.c