On Sun, Nov 19, 2017 at 11:54 AM, Ilia Mirkin <imir...@alum.mit.edu> wrote:
> GL doesn't have this, but some hardware supports it. This is convenient > for lowering tg4 to plain texture calls, which is necessary on Adreno > A4xx hardware. > > Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/compiler/nir/nir.h | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h > index f46f6147110..64965ae16d6 100644 > --- a/src/compiler/nir/nir.h > +++ b/src/compiler/nir/nir.h > @@ -1364,8 +1364,7 @@ nir_tex_instr_src_size(const nir_tex_instr *instr, > unsigned src) > if (instr->src[src].src_type == nir_tex_src_ms_mcs) > return 4; > > - if (instr->src[src].src_type == nir_tex_src_offset || > - instr->src[src].src_type == nir_tex_src_ddx || > + if (instr->src[src].src_type == nir_tex_src_ddx || > instr->src[src].src_type == nir_tex_src_ddy) { > if (instr->is_array) > return instr->coord_components - 1; > @@ -1373,6 +1372,18 @@ nir_tex_instr_src_size(const nir_tex_instr *instr, > unsigned src) > return instr->coord_components; > } > > + /* Usual APIs don't allow cube + offset, but we allow it, with 2 > coords for > + * the offset, since a cube maps to a single face. > + */ > + if (instr->src[src].src_type == nir_tex_src_offset) { > + unsigned ret = instr->coord_components; > + if (instr->is_array) > + ret--; > + if (instr->sampler_dim == GLSL_SAMPLER_DIM_CUBE) > + ret--; > + return ret; > I think I'd rather this look more like the one above: if (instr->is_array) return instr->coord_components; else if (instr->sampler_dim == GLSL_SAMPLER_DIM_CUBE) return 2; else return instr->coord_components - 1; It seems a bit cleaner and/or more explicit to me. Also, bonus points to anyone who converts this function to use a switch. :-P --Jason > + } > + > return 1; > } > > -- > 2.13.6 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev