From a5995766548b9cdd17fd0a14ba86fcb524c65cba Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Fri, 27 May 2022 17:32:45 +0800 Subject: [PATCH] radeonsi: use si_shader as parameter in si_get_nir_shader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/gallium/drivers/radeonsi/si_shader.c | 9 +++++---- src/gallium/drivers/radeonsi/si_shader_internal.h | 4 +--- src/gallium/drivers/radeonsi/si_shader_llvm.c | 5 ++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index c4d81298a27..a3f74e519f1 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1526,11 +1526,12 @@ struct nir_shader *si_deserialize_shader(struct si_shader_selector *sel) return nir_deserialize(NULL, options, &blob_reader); } -struct nir_shader *si_get_nir_shader(struct si_shader_selector *sel, - const union si_shader_key *key, - bool *free_nir, +struct nir_shader *si_get_nir_shader(struct si_shader *shader, bool *free_nir, uint64_t tcs_vgpr_only_inputs) { + struct si_shader_selector *sel = shader->selector; + const union si_shader_key *key = &shader->key; + nir_shader *nir; *free_nir = false; @@ -1726,7 +1727,7 @@ bool si_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *compi { struct si_shader_selector *sel = shader->selector; bool free_nir; - struct nir_shader *nir = si_get_nir_shader(sel, &shader->key, &free_nir, 0); + struct nir_shader *nir = si_get_nir_shader(shader, &free_nir, 0); /* Assign param export indices. */ if ((sel->stage == MESA_SHADER_VERTEX || diff --git a/src/gallium/drivers/radeonsi/si_shader_internal.h b/src/gallium/drivers/radeonsi/si_shader_internal.h index ee04b3708d7..3860095e4ba 100644 --- a/src/gallium/drivers/radeonsi/si_shader_internal.h +++ b/src/gallium/drivers/radeonsi/si_shader_internal.h @@ -173,9 +173,7 @@ bool si_vs_needs_prolog(const struct si_shader_selector *sel, void si_get_vs_prolog_key(const struct si_shader_info *info, unsigned num_input_sgprs, bool ngg_cull_shader, const struct si_vs_prolog_bits *prolog_key, struct si_shader *shader_out, union si_shader_part_key *key); -struct nir_shader *si_get_nir_shader(struct si_shader_selector *sel, - const union si_shader_key *key, - bool *free_nir, +struct nir_shader *si_get_nir_shader(struct si_shader *shader, bool *free_nir, uint64_t tcs_vgpr_only_inputs); void si_get_tcs_epilog_key(struct si_shader *shader, union si_shader_part_key *key); bool si_need_ps_prolog(const union si_shader_part_key *key); diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm.c b/src/gallium/drivers/radeonsi/si_shader_llvm.c index 245ca5c4638..781352191e5 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm.c @@ -1254,8 +1254,7 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler * shader_ls.key.ge.opt.inline_uniforms = false; /* only TCS can inline uniforms */ shader_ls.is_monolithic = true; - nir = si_get_nir_shader(ls, &shader_ls.key, &free_nir, - sel->info.tcs_vgpr_only_inputs); + nir = si_get_nir_shader(&shader_ls, &free_nir, sel->info.tcs_vgpr_only_inputs); si_update_shader_binary_info(shader, nir); if (!si_llvm_translate_nir(&ctx, &shader_ls, nir, free_nir, false)) { @@ -1315,7 +1314,7 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler * shader_es.key.ge.opt.kill_outputs = 0; shader_es.is_monolithic = true; - nir = si_get_nir_shader(es, &shader_es.key, &free_nir, 0); + nir = si_get_nir_shader(&shader_es, &free_nir, 0); si_update_shader_binary_info(shader, nir); if (!si_llvm_translate_nir(&ctx, &shader_es, nir, free_nir, false)) {