From f91e49ee29b6c513f7b6837c8c169f0438dd1b50 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 21 Apr 2020 15:30:49 -0700 Subject: [PATCH] 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: --- src/freedreno/ir3/ir3_nir_lower_tess.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/freedreno/ir3/ir3_nir_lower_tess.c b/src/freedreno/ir3/ir3_nir_lower_tess.c index 7a30ef09d97..4d8798c285f 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. */ -- 2.30.2