summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-12-21 18:47:26 -0500
committerRob Clark <[email protected]>2018-12-21 19:04:22 -0500
commit3453814622040d2638ce7b7c73c046cd4a0119e9 (patch)
treef8a2f4d99e1f611b1780cce407ead081a07c72ea
parent626f2477abd11730be7c249fa64e6ca4c53a1dc9 (diff)
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 <[email protected]>
-rw-r--r--src/freedreno/ir3/ir3_context.c2
1 files changed, 1 insertions, 1 deletions
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