From: Nicolai Hähnle <nicolai.haeh...@amd.com>

Since it can only be used for reading the config of an individual,
non-combined shader, it is not very reusable anyway.
---
 src/gallium/drivers/radeonsi/si_shader.c | 21 +++++++--------------
 src/gallium/drivers/radeonsi/si_shader.h |  2 --
 2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 757624c52f7..528c34aecba 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -5302,33 +5302,20 @@ void si_shader_dump(struct si_screen *sscreen, const 
struct si_shader *shader,
                if (shader->epilog)
                        si_shader_dump_disassembly(&shader->epilog->binary,
                                                   debug, "epilog", file);
                fprintf(file, "\n");
        }
 
        si_shader_dump_stats(sscreen, shader, processor, file,
                             check_debug_option);
 }
 
-bool si_shader_binary_read_config(struct si_shader_binary *binary,
-                                 struct ac_shader_config *conf)
-{
-       struct ac_rtld_binary rtld;
-       if (!ac_rtld_open(&rtld, 1, &binary->elf_buffer, &binary->elf_size))
-               return false;
-
-       bool ok = ac_rtld_read_config(&rtld, conf);
-
-       ac_rtld_close(&rtld);
-       return ok;
-}
-
 static int si_compile_llvm(struct si_screen *sscreen,
                           struct si_shader_binary *binary,
                           struct ac_shader_config *conf,
                           struct ac_llvm_compiler *compiler,
                           LLVMModuleRef mod,
                           struct pipe_debug_callback *debug,
                           unsigned processor,
                           const char *name,
                           bool less_optimized)
 {
@@ -5350,21 +5337,27 @@ static int si_compile_llvm(struct si_screen *sscreen,
                LLVMDisposeMessage(ir);
        }
 
        if (!si_replace_shader(count, binary)) {
                unsigned r = si_llvm_compile(mod, binary, compiler, debug,
                                             less_optimized);
                if (r)
                        return r;
        }
 
-       if (!si_shader_binary_read_config(binary, conf))
+       struct ac_rtld_binary rtld;
+       if (!ac_rtld_open(&rtld, 1, &binary->elf_buffer, &binary->elf_size))
+               return -1;
+
+       bool ok = ac_rtld_read_config(&rtld, conf);
+       ac_rtld_close(&rtld);
+       if (!ok)
                return -1;
 
        /* Enable 64-bit and 16-bit denormals, because there is no performance
         * cost.
         *
         * If denormals are enabled, all floating-point output modifiers are
         * ignored.
         *
         * Don't enable denormals for 32-bit floats, because:
         * - Floating-point output modifiers would be ignored by the hw.
diff --git a/src/gallium/drivers/radeonsi/si_shader.h 
b/src/gallium/drivers/radeonsi/si_shader.h
index 302de427c04..ef9f5c379d3 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -685,22 +685,20 @@ unsigned si_shader_io_get_unique_index(unsigned 
semantic_name, unsigned index,
 bool si_shader_binary_upload(struct si_screen *sscreen, struct si_shader 
*shader,
                             uint64_t scratch_va);
 void si_shader_dump(struct si_screen *sscreen, const struct si_shader *shader,
                    struct pipe_debug_callback *debug, unsigned processor,
                    FILE *f, bool check_debug_option);
 void si_shader_dump_stats_for_shader_db(const struct si_shader *shader,
                                        struct pipe_debug_callback *debug);
 void si_multiwave_lds_size_workaround(struct si_screen *sscreen,
                                      unsigned *lds_size);
 const char *si_get_shader_name(const struct si_shader *shader, unsigned 
processor);
-bool si_shader_binary_read_config(struct si_shader_binary *binary,
-                                 struct ac_shader_config *conf);
 void si_shader_binary_clean(struct si_shader_binary *binary);
 
 /* si_shader_nir.c */
 void si_nir_scan_shader(const struct nir_shader *nir,
                        struct tgsi_shader_info *info);
 void si_nir_scan_tess_ctrl(const struct nir_shader *nir,
                           struct tgsi_tessctrl_info *out);
 void si_lower_nir(struct si_shader_selector *sel);
 
 /* Inline helpers. */
-- 
2.20.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to