summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2019-09-27 14:55:58 -0400
committerMarek Olšák <[email protected]>2019-10-23 21:12:52 -0400
commit43efccb65701e716d837d5d93b8b6e8fed0cec26 (patch)
treefd5e0300f35b6418103eab3e8491b087cb15bfda
parentfb04e5da97d904ab1dc7e0182bcba77071bbe340 (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.c13
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;