Jason Ekstrand <ja...@jlekstrand.net> writes: > Some SPIR-V texturing instructions pack more than the texture coordinate > into the coordinate source. We need to mask off the unused channels. > --- > src/compiler/spirv/spirv_to_nir.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/src/compiler/spirv/spirv_to_nir.c > b/src/compiler/spirv/spirv_to_nir.c > index 1dd6651..fa28576 100644 > --- a/src/compiler/spirv/spirv_to_nir.c > +++ b/src/compiler/spirv/spirv_to_nir.c > @@ -1567,7 +1567,8 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode, > coord_components++; > > coord = vtn_ssa_value(b, w[idx++])->def; > - p->src = nir_src_for_ssa(coord); > + p->src = nir_src_for_ssa(nir_channels(&b->nb, coord, > + (1 << coord_components) - 1));
All nir_channels() calls are using a mask without holes or bottom bits missing, so it would be nice to rewrite it to take a number of channels instead, I think. That's a cleanup for later, though.
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev