Mesa (master): ttn: Add new allow_disk_cache parameter

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 13 20:07:10 UTC 2020


Module: Mesa
Branch: master
Commit: 522bd414f343c7a132fee17d0d6b755b9ec6766c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=522bd414f343c7a132fee17d0d6b755b9ec6766c

Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Tue May 12 21:52:40 2020 +0200

ttn: Add new allow_disk_cache parameter

For now this parameter doesn't do anything.
It means the implementation is allowed to use
a cache on disk.

Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4993>

---

 src/gallium/auxiliary/nir/tgsi_to_nir.c          | 5 ++++-
 src/gallium/auxiliary/nir/tgsi_to_nir.h          | 3 ++-
 src/gallium/drivers/etnaviv/etnaviv_shader.c     | 2 +-
 src/gallium/drivers/freedreno/a2xx/fd2_program.c | 4 ++--
 src/gallium/drivers/freedreno/ir3/ir3_gallium.c  | 4 ++--
 src/gallium/drivers/iris/iris_program.c          | 2 +-
 src/gallium/drivers/lima/lima_program.c          | 4 ++--
 src/gallium/drivers/panfrost/pan_assemble.c      | 2 +-
 src/gallium/drivers/radeonsi/si_compute.c        | 2 +-
 src/gallium/drivers/radeonsi/si_state_shaders.c  | 2 +-
 src/gallium/drivers/v3d/v3d_program.c            | 2 +-
 src/gallium/drivers/vc4/vc4_program.c            | 2 +-
 src/gallium/drivers/zink/zink_compiler.c         | 2 +-
 src/gallium/frontends/nine/nine_shader.c         | 2 +-
 14 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c
index 2865697482e..69c1d5bfc58 100644
--- a/src/gallium/auxiliary/nir/tgsi_to_nir.c
+++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c
@@ -2582,11 +2582,14 @@ ttn_finalize_nir(struct ttn_compile *c, struct pipe_screen *screen)
 
 struct nir_shader *
 tgsi_to_nir(const void *tgsi_tokens,
-            struct pipe_screen *screen)
+            struct pipe_screen *screen,
+            bool allow_disk_cache)
 {
    struct ttn_compile *c;
    struct nir_shader *s;
 
+   (void)allow_disk_cache;
+
    c = ttn_compile_init(tgsi_tokens, NULL, screen);
    s = c->build.shader;
    ttn_finalize_nir(c, screen);
diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.h b/src/gallium/auxiliary/nir/tgsi_to_nir.h
index 666fdf5b1ea..88e128d6f87 100644
--- a/src/gallium/auxiliary/nir/tgsi_to_nir.h
+++ b/src/gallium/auxiliary/nir/tgsi_to_nir.h
@@ -29,7 +29,8 @@
 
 struct nir_shader *
 tgsi_to_nir(const void *tgsi_tokens,
-            struct pipe_screen *screen);
+            struct pipe_screen *screen,
+            bool allow_disk_cache);
 
 struct nir_shader *
 tgsi_to_nir_noscreen(const void *tgsi_tokens,
diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.c b/src/gallium/drivers/etnaviv/etnaviv_shader.c
index 3ac619ac9d7..173a4681cb2 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_shader.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_shader.c
@@ -406,7 +406,7 @@ etna_create_shader_state(struct pipe_context *pctx,
 
    if (DBG_ENABLED(ETNA_DBG_NIR))
       shader->nir = (pss->type == PIPE_SHADER_IR_NIR) ? pss->ir.nir :
-                     tgsi_to_nir(pss->tokens, pctx->screen);
+                     tgsi_to_nir(pss->tokens, pctx->screen, false);
    else
       shader->tokens = tgsi_dup_tokens(pss->tokens);
 
diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_program.c b/src/gallium/drivers/freedreno/a2xx/fd2_program.c
index b735535e7f7..958b1f784b2 100644
--- a/src/gallium/drivers/freedreno/a2xx/fd2_program.c
+++ b/src/gallium/drivers/freedreno/a2xx/fd2_program.c
@@ -98,7 +98,7 @@ fd2_fp_state_create(struct pipe_context *pctx,
 		return NULL;
 
 	so->nir = (cso->type == PIPE_SHADER_IR_NIR) ? cso->ir.nir :
-		tgsi_to_nir(cso->tokens, pctx->screen);
+		tgsi_to_nir(cso->tokens, pctx->screen, false);
 
 	NIR_PASS_V(so->nir, nir_lower_io, nir_var_all, ir2_glsl_type_size,
 			   (nir_lower_io_options)0);
@@ -135,7 +135,7 @@ fd2_vp_state_create(struct pipe_context *pctx,
 		return NULL;
 
 	so->nir = (cso->type == PIPE_SHADER_IR_NIR) ? cso->ir.nir :
-		tgsi_to_nir(cso->tokens, pctx->screen);
+		tgsi_to_nir(cso->tokens, pctx->screen, false);
 
 	NIR_PASS_V(so->nir, nir_lower_io, nir_var_all, ir2_glsl_type_size,
 			   (nir_lower_io_options)0);
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
index 3507be9bc2e..720c87a72b8 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
@@ -139,7 +139,7 @@ ir3_shader_create(struct ir3_compiler *compiler,
 		if (ir3_shader_debug & IR3_DBG_DISASM) {
 			tgsi_dump(cso->tokens, 0);
 		}
-		nir = tgsi_to_nir(cso->tokens, screen);
+		nir = tgsi_to_nir(cso->tokens, screen, false);
 	}
 
 	struct ir3_stream_output_info stream_output;
@@ -208,7 +208,7 @@ ir3_shader_create_compute(struct ir3_compiler *compiler,
 		if (ir3_shader_debug & IR3_DBG_DISASM) {
 			tgsi_dump(cso->prog, 0);
 		}
-		nir = tgsi_to_nir(cso->prog, screen);
+		nir = tgsi_to_nir(cso->prog, screen, false);
 	}
 
 	struct ir3_shader *shader = ir3_shader_from_nir(compiler, nir, NULL);
diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c
index b9131b872da..5f8c6fcb8d0 100644
--- a/src/gallium/drivers/iris/iris_program.c
+++ b/src/gallium/drivers/iris/iris_program.c
@@ -2217,7 +2217,7 @@ iris_create_shader_state(struct pipe_context *ctx,
    struct nir_shader *nir;
 
    if (state->type == PIPE_SHADER_IR_TGSI)
-      nir = tgsi_to_nir(state->tokens, ctx->screen);
+      nir = tgsi_to_nir(state->tokens, ctx->screen, false);
    else
       nir = state->ir.nir;
 
diff --git a/src/gallium/drivers/lima/lima_program.c b/src/gallium/drivers/lima/lima_program.c
index 75e74e23bc3..2537e770ef9 100644
--- a/src/gallium/drivers/lima/lima_program.c
+++ b/src/gallium/drivers/lima/lima_program.c
@@ -298,7 +298,7 @@ lima_create_fs_state(struct pipe_context *pctx,
    else {
       assert(cso->type == PIPE_SHADER_IR_TGSI);
 
-      nir = tgsi_to_nir(cso->tokens, pctx->screen);
+      nir = tgsi_to_nir(cso->tokens, pctx->screen, false);
    }
 
    so->base.type = PIPE_SHADER_IR_NIR;
@@ -454,7 +454,7 @@ lima_create_vs_state(struct pipe_context *pctx,
    else {
       assert(cso->type == PIPE_SHADER_IR_TGSI);
 
-      nir = tgsi_to_nir(cso->tokens, pctx->screen);
+      nir = tgsi_to_nir(cso->tokens, pctx->screen, false);
    }
 
    lima_program_optimize_vs_nir(nir);
diff --git a/src/gallium/drivers/panfrost/pan_assemble.c b/src/gallium/drivers/panfrost/pan_assemble.c
index efd3bf35df7..53bf9caaafc 100644
--- a/src/gallium/drivers/panfrost/pan_assemble.c
+++ b/src/gallium/drivers/panfrost/pan_assemble.c
@@ -132,7 +132,7 @@ panfrost_shader_compile(struct panfrost_context *ctx,
                 s = nir_shader_clone(NULL, ir);
         } else {
                 assert (ir_type == PIPE_SHADER_IR_TGSI);
-                s = tgsi_to_nir(ir, ctx->base.screen);
+                s = tgsi_to_nir(ir, ctx->base.screen, false);
         }
 
         s->info.stage = stage;
diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
index f34c0612598..504e518111e 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -217,7 +217,7 @@ static void *si_create_compute_state(struct pipe_context *ctx, const struct pipe
    if (cso->ir_type != PIPE_SHADER_IR_NATIVE) {
       if (cso->ir_type == PIPE_SHADER_IR_TGSI) {
          program->ir_type = PIPE_SHADER_IR_NIR;
-         sel->nir = tgsi_to_nir(cso->prog, ctx->screen);
+         sel->nir = tgsi_to_nir(cso->prog, ctx->screen, false);
       } else {
          assert(cso->ir_type == PIPE_SHADER_IR_NIR);
          sel->nir = (struct nir_shader *)cso->prog;
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 45dcfa679b5..b98d866d058 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -2593,7 +2593,7 @@ static void *si_create_shader_selector(struct pipe_context *ctx,
    sel->so = state->stream_output;
 
    if (state->type == PIPE_SHADER_IR_TGSI) {
-      sel->nir = tgsi_to_nir(state->tokens, ctx->screen);
+      sel->nir = tgsi_to_nir(state->tokens, ctx->screen, false);
    } else {
       assert(state->type == PIPE_SHADER_IR_NIR);
       sel->nir = state->ir.nir;
diff --git a/src/gallium/drivers/v3d/v3d_program.c b/src/gallium/drivers/v3d/v3d_program.c
index 81c14d349c9..ad6a796866a 100644
--- a/src/gallium/drivers/v3d/v3d_program.c
+++ b/src/gallium/drivers/v3d/v3d_program.c
@@ -303,7 +303,7 @@ v3d_uncompiled_shader_create(struct pipe_context *pctx,
                         tgsi_dump(ir, 0);
                         fprintf(stderr, "\n");
                 }
-                s = tgsi_to_nir(ir, pctx->screen);
+                s = tgsi_to_nir(ir, pctx->screen, false);
         }
 
         nir_variable_mode lower_mode = nir_var_all & ~nir_var_uniform;
diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c
index 0a6c43f0462..66a095e1216 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -2466,7 +2466,7 @@ vc4_shader_state_create(struct pipe_context *pctx,
                         tgsi_dump(cso->tokens, 0);
                         fprintf(stderr, "\n");
                 }
-                s = tgsi_to_nir(cso->tokens, pctx->screen);
+                s = tgsi_to_nir(cso->tokens, pctx->screen, false);
         }
 
         if (s->info.stage == MESA_SHADER_VERTEX)
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c
index 6583040d5c7..1d9d21df3fe 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -108,7 +108,7 @@ zink_tgsi_to_nir(struct pipe_screen *screen, const struct tgsi_token *tokens)
       fprintf(stderr, "---8<---\n\n");
    }
 
-   return tgsi_to_nir(tokens, screen);
+   return tgsi_to_nir(tokens, screen, false);
 }
 
 static void
diff --git a/src/gallium/frontends/nine/nine_shader.c b/src/gallium/frontends/nine/nine_shader.c
index 195a1fe5f59..d6da68f7ec9 100644
--- a/src/gallium/frontends/nine/nine_shader.c
+++ b/src/gallium/frontends/nine/nine_shader.c
@@ -3836,7 +3836,7 @@ static void
 nine_pipe_nir_shader_state_from_tgsi(struct pipe_shader_state *state, const struct tgsi_token *tgsi_tokens,
                                      struct pipe_screen *screen)
 {
-    struct nir_shader *nir = tgsi_to_nir(tgsi_tokens, screen);
+    struct nir_shader *nir = tgsi_to_nir(tgsi_tokens, screen, false);
 
     if (unlikely(nine_shader_get_debug_flag(NINE_SHADER_DEBUG_OPTION_DUMP_NIR))) {
         nir_print_shader(nir, stdout);



More information about the mesa-commit mailing list