summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-02-03 13:50:09 -0500
committerTom Stellard <thomas.stellard@amd.com>2014-02-03 13:50:09 -0500
commit6586e5b8a0347851e9cf22acdb459838c5f9d0c4 (patch)
treee1a587bee7d870694a85b0938d9edf754dd81c81
parentdf21f31788f2dc610ac069b92e5ab652d7e78bcd (diff)
radeon: Rename struct radeon_llvm_binary to radeon_shader_binary
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.
-rw-r--r--src/gallium/drivers/r600/r600_llvm.c4
-rw-r--r--src/gallium/drivers/radeon/Makefile.am1
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.h16
-rw-r--r--src/gallium/drivers/radeon/radeon_llvm_emit.c3
-rw-r--r--src/gallium/drivers/radeon/radeon_llvm_emit.h10
-rw-r--r--src/gallium/drivers/radeonsi/si_shader.c2
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 e395bf6359b..4fcca697741 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 7971191e4c6..b521658b02c 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 9fdfdfd21fd..9fd80d977c4 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 92e7dbc7756..4e0aaea0ebc 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 532b7b843f0..780ff5f67f2 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 54270cdb733..ae40f4e7413 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -2279,7 +2279,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));