From 3453814622040d2638ce7b7c73c046cd4a0119e9 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Fri, 21 Dec 2018 18:47:26 -0500 Subject: [PATCH] freedreno/ir3: fix fallout of extra assert Fixes the following crash that happened after d6110d4d The problem happens if we first compile a "vanilla" shader with nothing lowered in NIR, which perform the final lowering passes on so->shader-> nir (including nir_lower_locals_to_regs()), and then later we have compile a shader with some lowering. The second time through we would have already done nir_lower_locals_to_regs(). Arguably this was already a bug, just one we hadn't noticed yet. Fixes: d6110d4d547 intel/compiler: move nir_lower_bool_to_int32 before nir_lower_locals_to_regs Signed-off-by: Rob Clark --- src/freedreno/ir3/ir3_context.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedreno/ir3/ir3_context.c b/src/freedreno/ir3/ir3_context.c index bba41377525..c2d01666cff 100644 --- a/src/freedreno/ir3/ir3_context.c +++ b/src/freedreno/ir3/ir3_context.c @@ -71,7 +71,7 @@ ir3_context_init(struct ir3_compiler *compiler, ctx->s = ir3_optimize_nir(so->shader, s, &so->key); } else { /* fast-path for shader key that lowers nothing in NIR: */ - ctx->s = so->shader->nir; + ctx->s = nir_shader_clone(ctx, so->shader->nir); } /* this needs to be the last pass run, so do this here instead of