From: Kenneth Graunke Date: Tue, 25 Aug 2020 00:00:33 +0000 (-0700) Subject: nir: Move new edgeflag assert into the io_lowered case X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2a9ffc24cc7a8d782c60265e6a28f0a0067b292c;p=mesa.git nir: Move new edgeflag assert into the io_lowered case We only need to assert this in the `io_lowered` case, which actually uses num_outputs. This assert also doesn't appear to hold on iris, where num_outputs is showing up as 0 (because it's likely not yet set). Fixes assertion failures in edgeflag related tests on iris, which doesn't use the io_lowered path currently. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3456 Fixes: 484a60d5474 ("nir: generate lowered IO in nir_lower_passthrough_edgeflags") Reviewed-by: Eric Anholt Part-of: --- diff --git a/src/compiler/nir/nir_lower_passthrough_edgeflags.c b/src/compiler/nir/nir_lower_passthrough_edgeflags.c index eb142ce600c..c048235d6fc 100644 --- a/src/compiler/nir/nir_lower_passthrough_edgeflags.c +++ b/src/compiler/nir/nir_lower_passthrough_edgeflags.c @@ -37,10 +37,12 @@ lower_impl(nir_function_impl *impl) /* The edge flag is the last input in st/mesa. */ assert(shader->num_inputs == util_bitcount64(shader->info.inputs_read)); - assert(shader->num_outputs == util_bitcount64(shader->info.outputs_written)); /* Lowered IO only uses intrinsics. It doesn't use variables. */ if (shader->info.io_lowered) { + assert(shader->num_outputs == + util_bitcount64(shader->info.outputs_written)); + /* Load an edge flag. */ nir_intrinsic_instr *load = nir_intrinsic_instr_create(shader, nir_intrinsic_load_input);