From edb89b71c50fdfe8894c0767332e46bb455ef95c Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 6 Feb 2023 12:41:49 -0800 Subject: [PATCH] nir/inline_uniforms: Allow possibility of uni_offsets and num_offsets being NULL This is step 3 in an attempt to unify a bunch of nir_inline_uniforms.c and lvp_inline_uniforms.c code. Reviewed-by: Mike Blumenkrantz Part-of: --- src/compiler/nir/nir_inline_uniforms.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/compiler/nir/nir_inline_uniforms.c b/src/compiler/nir/nir_inline_uniforms.c index 4adc9f10925..4c429d2b53a 100644 --- a/src/compiler/nir/nir_inline_uniforms.c +++ b/src/compiler/nir/nir_inline_uniforms.c @@ -113,6 +113,15 @@ src_only_uses_uniforms(const nir_src *src, int component, nir_src_as_uint(intr->src[1]) <= max_offset && /* TODO: Can't handle other bit sizes for now. */ intr->dest.ssa.bit_size == 32) { + /* num_offsets can be NULL if-and-only-if uni_offsets is NULL. */ + assert((num_offsets == NULL) == (uni_offsets == NULL)); + + /* If we're just checking that it's a uniform load, don't check (or + * add to) the table. + */ + if (uni_offsets == NULL) + return true; + uint32_t offset = nir_src_as_uint(intr->src[1]) + component * 4; assert(offset < MAX_OFFSET);