And move its definition into r600_pipe_common.h;  This struct is a just
a container for shader code and has nothing to do with LLVM.
---
 src/gallium/drivers/r600/r600_llvm.c          |  4 ++--
 src/gallium/drivers/radeon/Makefile.am        |  1 +
 src/gallium/drivers/radeon/r600_pipe_common.h | 16 ++++++++++++++++
 src/gallium/drivers/radeon/radeon_llvm_emit.c |  3 ++-
 src/gallium/drivers/radeon/radeon_llvm_emit.h | 10 ++--------
 src/gallium/drivers/radeonsi/si_shader.c      |  2 +-
 6 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_llvm.c 
b/src/gallium/drivers/r600/r600_llvm.c
index e395bf6..4fcca69 100644
--- a/src/gallium/drivers/r600/r600_llvm.c
+++ b/src/gallium/drivers/r600/r600_llvm.c
@@ -827,11 +827,11 @@ unsigned r600_llvm_compile(
        unsigned dump)
 {
        unsigned r;
-       struct radeon_llvm_binary binary;
+       struct radeon_shader_binary binary;
        const char * gpu_family = r600_get_llvm_processor_name(family);
        unsigned i;
 
-       memset(&binary, 0, sizeof(struct radeon_llvm_binary));
+       memset(&binary, 0, sizeof(struct radeon_shader_binary));
        r = radeon_llvm_compile(mod, &binary, gpu_family, dump);
 
        assert(binary.code_size % 4 == 0);
diff --git a/src/gallium/drivers/radeon/Makefile.am 
b/src/gallium/drivers/radeon/Makefile.am
index 7971191..b521658 100644
--- a/src/gallium/drivers/radeon/Makefile.am
+++ b/src/gallium/drivers/radeon/Makefile.am
@@ -17,6 +17,7 @@ noinst_LTLIBRARIES += libllvmradeon.la
 
 libllvmradeon_la_CFLAGS = \
        $(GALLIUM_DRIVER_CFLAGS) \
+       $(RADEON_CFLAGS) \
        $(LLVM_CFLAGS)
 
 libllvmradeon_la_SOURCES = \
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 692de5e..1367ae4 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -91,6 +91,22 @@
 
 struct r600_common_context;
 
+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;
+
+       /** Set to 1 if the disassembly for this binary has been dumped to
+        *  stderr. */
+       int disassembled;
+};
+
 struct r600_resource {
        struct u_resource               b;
 
diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c 
b/src/gallium/drivers/radeon/radeon_llvm_emit.c
index 92e7dbc..4e0aaea 100644
--- a/src/gallium/drivers/radeon/radeon_llvm_emit.c
+++ b/src/gallium/drivers/radeon/radeon_llvm_emit.c
@@ -24,6 +24,7 @@
  *
  */
 #include "radeon_llvm_emit.h"
+#include "r600_pipe_common.h"
 #include "util/u_memory.h"
 
 #include <llvm-c/Target.h>
@@ -85,7 +86,7 @@ static LLVMTargetRef get_r600_target() {
  *
  * @returns 0 for success, 1 for failure
  */
-unsigned radeon_llvm_compile(LLVMModuleRef M, struct radeon_llvm_binary 
*binary,
+unsigned radeon_llvm_compile(LLVMModuleRef M, struct radeon_shader_binary 
*binary,
                                          const char * gpu_family, unsigned 
dump) {
 
        LLVMTargetRef target;
diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.h 
b/src/gallium/drivers/radeon/radeon_llvm_emit.h
index 532b7b8..780ff5f 100644
--- a/src/gallium/drivers/radeon/radeon_llvm_emit.h
+++ b/src/gallium/drivers/radeon/radeon_llvm_emit.h
@@ -29,19 +29,13 @@
 
 #include <llvm-c/Core.h>
 
-struct radeon_llvm_binary {
-       unsigned char *code;
-       unsigned code_size;
-       unsigned char *config;
-       unsigned config_size;
-       int disassembled;
-};
+struct radeon_shader_binary;
 
 void radeon_llvm_shader_type(LLVMValueRef F, unsigned type);
 
 unsigned  radeon_llvm_compile(
        LLVMModuleRef M,
-       struct radeon_llvm_binary *binary,
+       struct radeon_shader_binary *binary,
        const char * gpu_family,
        unsigned dump);
 
diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 3a441f9..e4390ee 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -2295,7 +2295,7 @@ int si_compile_llvm(struct si_context *sctx, struct 
si_pipe_shader *shader,
 {
        unsigned i;
        uint32_t *ptr;
-       struct radeon_llvm_binary binary;
+       struct radeon_shader_binary binary;
        bool dump = r600_can_dump_shader(&sctx->screen->b,
                        shader->selector ? shader->selector->tokens : NULL);
        memset(&binary, 0, sizeof(binary));
-- 
1.8.1.5


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

Reply via email to