From 522bd414f343c7a132fee17d0d6b755b9ec6766c Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Tue, 12 May 2020 21:52:40 +0200 Subject: [PATCH] ttn: Add new allow_disk_cache parameter MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Marek Olšák Part-of: --- 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); -- 2.30.2