Mesa (master): spirv: Check that only one offset is defined as Image Operand

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Oct 24 19:31:49 UTC 2019


Module: Mesa
Branch: master
Commit: c7d8fe2f0d23a82ed92a58594645c227155c35f0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7d8fe2f0d23a82ed92a58594645c227155c35f0

Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Tue Oct 22 23:40:08 2019 -0700

spirv: Check that only one offset is defined as Image Operand

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/compiler/spirv/spirv_to_nir.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 2de9bdf3389..d1884f48330 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -2438,6 +2438,12 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
          (*p++) = vtn_tex_src(b, w[idx++], nir_tex_src_ddy);
       }
 
+      vtn_fail_if(util_bitcount(operands & (SpvImageOperandsConstOffsetsMask |
+                                            SpvImageOperandsOffsetMask |
+                                            SpvImageOperandsConstOffsetMask)) > 1,
+                  "At most one of the ConstOffset, Offset, and ConstOffsets "
+                  "image operands can be used on a given instruction.");
+
       if (operands & SpvImageOperandsOffsetMask ||
           operands & SpvImageOperandsConstOffsetMask)
          (*p++) = vtn_tex_src(b, w[idx++], nir_tex_src_offset);




More information about the mesa-commit mailing list