radeon/ac: switch from radeon_shader_binary to ac_shader_binary
authorTimothy Arceri <tarceri@itsqueeze.com>
Sun, 26 Feb 2017 23:50:29 +0000 (10:50 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Tue, 28 Feb 2017 02:20:31 +0000 (13:20 +1100)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
12 files changed:
src/gallium/drivers/r600/evergreen_compute.c
src/gallium/drivers/r600/evergreen_compute_internal.h
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeon/radeon_elf_util.c
src/gallium/drivers/radeon/radeon_elf_util.h
src/gallium/drivers/radeonsi/si_debug.c
src/gallium/drivers/radeonsi/si_pipe.h
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader.h
src/gallium/drivers/radeonsi/si_shader_internal.h
src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c

index f66c9f6de28c4d29003871c9cb12d12c9677ed83..cf56d048b15015781fa736990c6236b445bbd006 100644 (file)
@@ -180,7 +180,7 @@ static void evergreen_cs_set_constant_buffer(struct r600_context *rctx,
 
 #ifdef HAVE_OPENCL
 
-static void r600_shader_binary_read_config(const struct radeon_shader_binary *binary,
+static void r600_shader_binary_read_config(const struct ac_shader_binary *binary,
                                           struct r600_bytecode *bc,
                                           uint64_t symbol_offset,
                                           boolean *use_kill)
@@ -216,7 +216,7 @@ static void r600_shader_binary_read_config(const struct radeon_shader_binary *bi
 }
 
 static unsigned r600_create_shader(struct r600_bytecode *bc,
-                                  const struct radeon_shader_binary *binary,
+                                  const struct ac_shader_binary *binary,
                                   boolean *use_kill)
 
 {
index 34d96f6d23922f921ea70954586af359d0b261c6..6f4be3ea57fdc1acffae09c5595b6c30dadf85e8 100644 (file)
@@ -33,7 +33,7 @@
 struct r600_pipe_compute {
        struct r600_context *ctx;
 
-       struct radeon_shader_binary binary;
+       struct ac_shader_binary binary;
        struct r600_resource *code_bo;
        struct r600_bytecode bc;
 
index 9a514e34b3fdde722b45b51494925a8ea9205121..5a6f9606b7109130761c69855627d8e577cc4977 100644 (file)
@@ -66,12 +66,12 @@ struct r600_multi_fence {
 /*
  * shader binary helpers.
  */
-void radeon_shader_binary_init(struct radeon_shader_binary *b)
+void radeon_shader_binary_init(struct ac_shader_binary *b)
 {
        memset(b, 0, sizeof(*b));
 }
 
-void radeon_shader_binary_clean(struct radeon_shader_binary *b)
+void radeon_shader_binary_clean(struct ac_shader_binary *b)
 {
        if (!b)
                return;
index 94cf0fcc055647f338eab0b3d85e8e47691142a3..55d2d0bd5ff05454d07bbade3153f4a3e4816655 100644 (file)
@@ -34,6 +34,8 @@
 
 #include <stdio.h>
 
+#include "amd/common/ac_binary.h"
+
 #include "radeon/radeon_winsys.h"
 
 #include "util/disk_cache.h"
@@ -128,45 +130,8 @@ struct r600_perfcounters;
 struct tgsi_shader_info;
 struct r600_qbo_state;
 
-struct radeon_shader_reloc {
-       char name[32];
-       uint64_t offset;
-};
-
-struct radeon_shader_binary {
-       /** Shader code */
-       unsigned char *code;
-       unsigned code_size;
-
-       /** Config/Context register state that accompanies this shader.
-        * This is a stream of dword pairs.  First dword contains the
-        * register address, the second dword contains the value.*/
-       unsigned char *config;
-       unsigned config_size;
-
-       /** The number of bytes of config information for each global symbol.
-        */
-       unsigned config_size_per_symbol;
-
-       /** Constant data accessed by the shader.  This will be uploaded
-        * into a constant buffer. */
-       unsigned char *rodata;
-       unsigned rodata_size;
-
-       /** List of symbol offsets for the shader */
-       uint64_t *global_symbol_offsets;
-       unsigned global_symbol_count;
-
-       struct radeon_shader_reloc *relocs;
-       unsigned reloc_count;
-
-       /** Disassembled shader in a string. */
-       char *disasm_string;
-       char *llvm_ir_string;
-};
-
-void radeon_shader_binary_init(struct radeon_shader_binary *b);
-void radeon_shader_binary_clean(struct radeon_shader_binary *b);
+void radeon_shader_binary_init(struct ac_shader_binary *b);
+void radeon_shader_binary_clean(struct ac_shader_binary *b);
 
 /* Only 32-bit buffer allocations are supported, gallium doesn't support more
  * at the moment.
index 8aaa85d02f6cbb35188478b233e803b0f04f09f9..21a7ed5c87ed11adeebf5d306609e2b9e2a12527 100644 (file)
@@ -35,7 +35,7 @@
 
 static void parse_symbol_table(Elf_Data *symbol_table_data,
                                const GElf_Shdr *symbol_table_header,
-                               struct radeon_shader_binary *binary)
+                               struct ac_shader_binary *binary)
 {
        GElf_Sym symbol;
        unsigned i = 0;
@@ -78,7 +78,7 @@ static void parse_symbol_table(Elf_Data *symbol_table_data,
 
 static void parse_relocs(Elf *elf, Elf_Data *relocs, Elf_Data *symbols,
                        unsigned symbol_sh_link,
-                       struct radeon_shader_binary *binary)
+                       struct ac_shader_binary *binary)
 {
        unsigned i;
 
@@ -86,12 +86,12 @@ static void parse_relocs(Elf *elf, Elf_Data *relocs, Elf_Data *symbols,
                return;
        }
        binary->relocs = CALLOC(binary->reloc_count,
-                       sizeof(struct radeon_shader_reloc));
+                       sizeof(struct ac_shader_reloc));
        for (i = 0; i < binary->reloc_count; i++) {
                GElf_Sym symbol;
                GElf_Rel rel;
                char *symbol_name;
-               struct radeon_shader_reloc *reloc = &binary->relocs[i];
+               struct ac_shader_reloc *reloc = &binary->relocs[i];
 
                gelf_getrel(relocs, i, &rel);
                gelf_getsym(symbols, GELF_R_SYM(rel.r_info), &symbol);
@@ -104,7 +104,7 @@ static void parse_relocs(Elf *elf, Elf_Data *relocs, Elf_Data *symbols,
 }
 
 void radeon_elf_read(const char *elf_data, unsigned elf_size,
-                    struct radeon_shader_binary *binary)
+                    struct ac_shader_binary *binary)
 {
        char *elf_buffer;
        Elf *elf;
@@ -183,7 +183,7 @@ void radeon_elf_read(const char *elf_data, unsigned elf_size,
 }
 
 const unsigned char *radeon_shader_binary_config_start(
-       const struct radeon_shader_binary *binary,
+       const struct ac_shader_binary *binary,
        uint64_t symbol_offset)
 {
        unsigned i;
index c2af9e0dfe0d8391db0cdc7d0fc83304f22d9f57..4d8318c68f3017b0cdb1ac2c1b3f853646fba757 100644 (file)
 
 #include <stdint.h>
 
-struct radeon_shader_binary;
-struct radeon_shader_reloc;
+struct ac_shader_binary;
 
 /*
  * Parse the elf binary stored in \p elf_data and create a
  * radeon_shader_binary object.
  */
 void radeon_elf_read(const char *elf_data, unsigned elf_size,
-                    struct radeon_shader_binary *binary);
+                    struct ac_shader_binary *binary);
 
 /**
  * @returns A pointer to the start of the configuration information for
  * the function starting at \p symbol_offset of the binary.
  */
 const unsigned char *radeon_shader_binary_config_start(
-       const struct radeon_shader_binary *binary,
+       const struct ac_shader_binary *binary,
        uint64_t symbol_offset);
 
 #endif /* RADEON_ELF_UTIL_H */
index 1f154c2591e1cea5d31b8c401ffc534b2b4feb78..f04b8fa155e94c2926d9078cbdd96fa3b70483ad 100644 (file)
@@ -53,7 +53,7 @@ static void si_dump_shader(struct si_screen *sscreen,
  * Shader compiles can be overridden with arbitrary ELF objects by setting
  * the environment variable RADEON_REPLACE_SHADERS=num1:filename1[;num2:filename2]
  */
-bool si_replace_shader(unsigned num, struct radeon_shader_binary *binary)
+bool si_replace_shader(unsigned num, struct ac_shader_binary *binary)
 {
        const char *p = debug_get_option_replace_shaders();
        const char *semicolon;
index 5b9a5a18cd67e9e9480f29d2ee45a935d4f2dc52..ec7cf30ef7e7dd1404efd9193ad2daddb35e70a9 100644 (file)
@@ -419,7 +419,7 @@ void si_init_cp_dma_functions(struct si_context *sctx);
 void si_init_debug_functions(struct si_context *sctx);
 void si_check_vm_faults(struct r600_common_context *ctx,
                        struct radeon_saved_cs *saved, enum ring_type ring);
-bool si_replace_shader(unsigned num, struct radeon_shader_binary *binary);
+bool si_replace_shader(unsigned num, struct ac_shader_binary *binary);
 
 /* si_dma.c */
 void si_init_dma_functions(struct si_context *sctx);
index f9eaea2d42a5146a18e7cf69f7d564cb812f36c7..e51b7c9f9785d236550464b7ce6bf1ed49de968b 100644 (file)
@@ -5750,7 +5750,7 @@ static void si_llvm_emit_polygon_stipple(struct si_shader_context *ctx,
        lp_build_intrinsic(builder, "llvm.AMDGPU.kill", ctx->voidt, &bit, 1, 0);
 }
 
-void si_shader_binary_read_config(struct radeon_shader_binary *binary,
+void si_shader_binary_read_config(struct ac_shader_binary *binary,
                                  struct si_shader_config *conf,
                                  unsigned symbol_offset)
 {
@@ -5763,7 +5763,7 @@ void si_shader_binary_read_config(struct radeon_shader_binary *binary,
         * Find out if we really need the scratch buffer.
         */
        for (i = 0; i < binary->reloc_count; i++) {
-               const struct radeon_shader_reloc *reloc = &binary->relocs[i];
+               const struct ac_shader_reloc *reloc = &binary->relocs[i];
 
                if (!strcmp(scratch_rsrc_dword0_symbol, reloc->name) ||
                    !strcmp(scratch_rsrc_dword1_symbol, reloc->name)) {
@@ -5853,7 +5853,7 @@ void si_shader_apply_scratch_relocs(struct si_context *sctx,
                        S_008F04_STRIDE(config->scratch_bytes_per_wave / 64);
 
        for (i = 0 ; i < shader->binary.reloc_count; i++) {
-               const struct radeon_shader_reloc *reloc =
+               const struct ac_shader_reloc *reloc =
                                        &shader->binary.relocs[i];
                if (!strcmp(scratch_rsrc_dword0_symbol, reloc->name)) {
                        util_memcpy_cpu_to_le32(shader->binary.code + reloc->offset,
@@ -5878,11 +5878,11 @@ static unsigned si_get_shader_binary_size(struct si_shader *shader)
 
 int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader)
 {
-       const struct radeon_shader_binary *prolog =
+       const struct ac_shader_binary *prolog =
                shader->prolog ? &shader->prolog->binary : NULL;
-       const struct radeon_shader_binary *epilog =
+       const struct ac_shader_binary *epilog =
                shader->epilog ? &shader->epilog->binary : NULL;
-       const struct radeon_shader_binary *mainb = &shader->binary;
+       const struct ac_shader_binary *mainb = &shader->binary;
        unsigned bo_size = si_get_shader_binary_size(shader) +
                           (!epilog ? mainb->rodata_size : 0);
        unsigned char *ptr;
@@ -5920,7 +5920,7 @@ int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader)
        return 0;
 }
 
-static void si_shader_dump_disassembly(const struct radeon_shader_binary *binary,
+static void si_shader_dump_disassembly(const struct ac_shader_binary *binary,
                                       struct pipe_debug_callback *debug,
                                       const char *name, FILE *file)
 {
@@ -6128,7 +6128,7 @@ void si_shader_dump(struct si_screen *sscreen, struct si_shader *shader,
 }
 
 int si_compile_llvm(struct si_screen *sscreen,
-                   struct radeon_shader_binary *binary,
+                   struct ac_shader_binary *binary,
                    struct si_shader_config *conf,
                    LLVMTargetMachineRef tm,
                    LLVMModuleRef mod,
index fda8cc6508550c3fe41f7db7a87b2267e092b4b7..c38e7f560b6aeb2669ed0baa1abefe03bc40ca76 100644 (file)
@@ -74,8 +74,7 @@
 #include "util/u_queue.h"
 #include "si_state.h"
 
-struct radeon_shader_binary;
-struct radeon_shader_reloc;
+struct ac_shader_binary;
 
 #define SI_MAX_VS_OUTPUTS      40
 
@@ -529,7 +528,7 @@ struct si_shader {
        bool                            is_gs_copy_shader;
 
        /* The following data is all that's needed for binary shaders. */
-       struct radeon_shader_binary     binary;
+       struct ac_shader_binary binary;
        struct si_shader_config         config;
        struct si_shader_info           info;
 
@@ -543,7 +542,7 @@ struct si_shader {
 struct si_shader_part {
        struct si_shader_part *next;
        union si_shader_part_key key;
-       struct radeon_shader_binary binary;
+       struct ac_shader_binary binary;
        struct si_shader_config config;
 };
 
@@ -562,7 +561,7 @@ int si_shader_create(struct si_screen *sscreen, LLVMTargetMachineRef tm,
                     struct si_shader *shader,
                     struct pipe_debug_callback *debug);
 int si_compile_llvm(struct si_screen *sscreen,
-                   struct radeon_shader_binary *binary,
+                   struct ac_shader_binary *binary,
                    struct si_shader_config *conf,
                    LLVMTargetMachineRef tm,
                    LLVMModuleRef mod,
@@ -582,7 +581,7 @@ void si_shader_apply_scratch_relocs(struct si_context *sctx,
                        struct si_shader *shader,
                        struct si_shader_config *config,
                        uint64_t scratch_va);
-void si_shader_binary_read_config(struct radeon_shader_binary *binary,
+void si_shader_binary_read_config(struct ac_shader_binary *binary,
                                  struct si_shader_config *conf,
                                  unsigned symbol_offset);
 unsigned si_get_spi_shader_z_format(bool writes_z, bool writes_stencil,
index a8ef523dd16e64ad720c4cf82df292addb10aa75..47aeb5d3b82af01d83069910baa396424d47ef9f 100644 (file)
@@ -35,7 +35,7 @@
 #include <llvm-c/TargetMachine.h>
 
 struct pipe_debug_callback;
-struct radeon_shader_binary;
+struct ac_shader_binary;
 
 #define RADEON_LLVM_MAX_INPUT_SLOTS 32
 #define RADEON_LLVM_MAX_INPUTS 32 * 4
@@ -166,7 +166,7 @@ void si_llvm_shader_type(LLVMValueRef F, unsigned type);
 
 LLVMTargetRef si_llvm_get_amdgpu_target(const char *triple);
 
-unsigned si_llvm_compile(LLVMModuleRef M, struct radeon_shader_binary *binary,
+unsigned si_llvm_compile(LLVMModuleRef M, struct ac_shader_binary *binary,
                         LLVMTargetMachineRef tm,
                         struct pipe_debug_callback *debug);
 
index 4601ca9ec94c0e05fc52fb5005fe6b7693ca0c5b..1ae17afbb2d785950b2f44f75fb95190bdec5310 100644 (file)
@@ -200,7 +200,7 @@ static void si_diagnostic_handler(LLVMDiagnosticInfoRef di, void *context)
  *
  * @returns 0 for success, 1 for failure
  */
-unsigned si_llvm_compile(LLVMModuleRef M, struct radeon_shader_binary *binary,
+unsigned si_llvm_compile(LLVMModuleRef M, struct ac_shader_binary *binary,
                         LLVMTargetMachineRef tm,
                         struct pipe_debug_callback *debug)
 {