[Mesa-dev] [PATCH 3/8] nir/spirv: Restrict the number of channels in texture coordinates
Jason Ekstrand
jason at jlekstrand.net
Sat Mar 4 01:12:27 UTC 2017
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));
p->src_type = nir_tex_src_coord;
p++;
break;
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list