From: Marek Olšák Date: Fri, 27 Sep 2019 18:55:58 +0000 (-0400) Subject: tgsi_to_nir: use pipe_screen::finalize_nir X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=43efccb65701e716d837d5d93b8b6e8fed0cec26;p=mesa.git tgsi_to_nir: use pipe_screen::finalize_nir Reviewed-by: Kenneth Graunke --- diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c index 3753ac75e92..bd0b47a856f 100644 --- a/src/gallium/auxiliary/nir/tgsi_to_nir.c +++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c @@ -2626,7 +2626,7 @@ ttn_optimize_nir(nir_shader *nir) * so we have to do it here too. */ static void -ttn_finalize_nir(struct ttn_compile *c) +ttn_finalize_nir(struct ttn_compile *c, struct pipe_screen *screen) { struct nir_shader *nir = c->build.shader; @@ -2644,8 +2644,13 @@ ttn_finalize_nir(struct ttn_compile *c) if (!c->cap_samplers_as_deref) NIR_PASS_V(nir, nir_lower_samplers); - ttn_optimize_nir(nir); - nir_shader_gather_info(nir, c->build.impl); + if (screen->finalize_nir) { + screen->finalize_nir(screen, nir, true); + } else { + ttn_optimize_nir(nir); + nir_shader_gather_info(nir, c->build.impl); + } + nir_validate_shader(nir, "TTN: after all optimizations"); } @@ -2658,7 +2663,7 @@ tgsi_to_nir(const void *tgsi_tokens, c = ttn_compile_init(tgsi_tokens, NULL, screen); s = c->build.shader; - ttn_finalize_nir(c); + ttn_finalize_nir(c, screen); ralloc_free(c); return s;