From: Eric Anholt Date: Tue, 21 Apr 2020 22:30:49 +0000 (-0700) Subject: freedreno/ir3: Skip tess epilogue if the program is missing stores. X-Git-Tag: upstream/21.0.0~10453 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f91e49ee29b6c513f7b6837c8c169f0438dd1b50;p=platform%2Fupstream%2Fmesa.git freedreno/ir3: Skip tess epilogue if the program is missing stores. Some of the negative API tests make shaders for tess stages that don't do all the stores they need to. Once we start precompiling (or doing shader-db of tess), we need to at least not segfault when generating them. Part-of: --- diff --git a/src/freedreno/ir3/ir3_nir_lower_tess.c b/src/freedreno/ir3/ir3_nir_lower_tess.c index 7a30ef0..4d8798c 100644 --- a/src/freedreno/ir3/ir3_nir_lower_tess.c +++ b/src/freedreno/ir3/ir3_nir_lower_tess.c @@ -524,6 +524,9 @@ emit_tess_epilouge(nir_builder *b, struct state *state) nir_ssa_def *tessfactor_address = nir_load_tess_factor_base_ir3(b); nir_ssa_def *levels[2]; + if (!state->outer_levels[0]) + return; + /* Then emit the epilogue that actually writes out the tessellation levels * to the BOs. */