diff options
author | Marek Olšák <[email protected]> | 2019-09-27 14:55:58 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-10-23 21:12:52 -0400 |
commit | 43efccb65701e716d837d5d93b8b6e8fed0cec26 (patch) | |
tree | fd5e0300f35b6418103eab3e8491b087cb15bfda | |
parent | fb04e5da97d904ab1dc7e0182bcba77071bbe340 (diff) |
tgsi_to_nir: use pipe_screen::finalize_nir
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/gallium/auxiliary/nir/tgsi_to_nir.c | 13 |
1 files changed, 9 insertions, 4 deletions
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; |