From 73ef225fc277cd7ccc996a0306cc3e9a30c46fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 19 Dec 2021 15:32:08 -0500 Subject: [PATCH] nir: validate write_mask for all intrinsics that have it Reviewed-by: Emma Anholt Part-of: --- src/compiler/nir/nir_validate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_validate.c b/src/compiler/nir/nir_validate.c index 7004fa38e6c..4bc145e50a5 100644 --- a/src/compiler/nir/nir_validate.c +++ b/src/compiler/nir/nir_validate.c @@ -634,7 +634,6 @@ validate_intrinsic_instr(nir_intrinsic_instr *instr, validate_state *state) if (glsl_type_is_boolean(dst->type)) src_bit_sizes[1] |= 32; validate_assert(state, !nir_deref_mode_may_be(dst, nir_var_read_only_modes)); - validate_assert(state, (nir_intrinsic_write_mask(instr) & ~((1 << instr->num_components) - 1)) == 0); break; } @@ -822,6 +821,11 @@ validate_intrinsic_instr(nir_intrinsic_instr *instr, validate_state *state) if (!vectorized_intrinsic(instr)) validate_assert(state, instr->num_components == 0); + + if (nir_intrinsic_has_write_mask(instr)) { + unsigned component_mask = BITFIELD_MASK(instr->num_components); + validate_assert(state, (nir_intrinsic_write_mask(instr) & ~component_mask) == 0); + } } static void