Mesa (master): radeonsi: move si_shader_binary_upload out of si_shader_binary_read

Marek Olšák mareko at kemper.freedesktop.org
Sun Jan 3 22:02:45 UTC 2016


Module: Mesa
Branch: master
Commit: b6d95248f0c423dfde573617cffddb4fa2d3c8ab
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6d95248f0c423dfde573617cffddb4fa2d3c8ab

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sun Dec 27 23:22:14 2015 +0100

radeonsi: move si_shader_binary_upload out of si_shader_binary_read

Reviewed-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/drivers/radeonsi/si_compute.c |    1 +
 src/gallium/drivers/radeonsi/si_shader.c  |   16 +++++++---------
 src/gallium/drivers/radeonsi/si_shader.h  |    4 ++--
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
index 469e1cc..3d10e0e 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -138,6 +138,7 @@ static void *si_create_compute_state(
 	init_scratch_buffer(sctx, program);
 	si_shader_binary_read(sctx->screen, &program->shader, &sctx->b.debug,
 			      TGSI_PROCESSOR_COMPUTE);
+	si_shader_binary_upload(sctx->screen, &program->shader);
 
 #endif
 	program->input_buffer =	si_resource_create_custom(sctx->b.b.screen,
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 779550b..c7e38b4 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3887,16 +3887,12 @@ static void si_shader_dump_disassembly(const struct radeon_shader_binary *binary
 	}
 }
 
-int si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader,
-			  struct pipe_debug_callback *debug, unsigned processor)
+void si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader,
+			   struct pipe_debug_callback *debug, unsigned processor)
 {
 	const struct radeon_shader_binary *binary = &shader->binary;
-	int r;
 
 	si_shader_binary_read_config(sscreen, shader, 0);
-	r = si_shader_binary_upload(sscreen, shader);
-	if (r)
-		return r;
 
 	if (r600_can_dump_shader(&sscreen->b, processor)) {
 		if (!(sscreen->b.debug_flags & DBG_NO_ASM))
@@ -3913,8 +3909,6 @@ int si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader,
 			   "Shader Stats: SGPRS: %d VGPRS: %d Code Size: %d LDS: %d Scratch: %d",
 			   shader->num_sgprs, shader->num_vgprs, binary->code_size,
 			   shader->lds_size, shader->scratch_bytes_per_wave);
-
-	return 0;
 }
 
 int si_compile_llvm(struct si_screen *sscreen, struct si_shader *shader,
@@ -3939,7 +3933,11 @@ int si_compile_llvm(struct si_screen *sscreen, struct si_shader *shader,
 			return r;
 	}
 
-	r = si_shader_binary_read(sscreen, shader, debug, processor);
+	si_shader_binary_read(sscreen, shader, debug, processor);
+
+	r = si_shader_binary_upload(sscreen, shader);
+	if (r)
+		return r;
 
 	FREE(shader->binary.config);
 	FREE(shader->binary.rodata);
diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h
index 236148c..882f698 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -336,8 +336,8 @@ int si_compile_llvm(struct si_screen *sscreen, struct si_shader *shader,
 void si_shader_destroy(struct si_shader *shader);
 unsigned si_shader_io_get_unique_index(unsigned semantic_name, unsigned index);
 int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader);
-int si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader,
-			  struct pipe_debug_callback *debug, unsigned processor);
+void si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader,
+			   struct pipe_debug_callback *debug, unsigned processor);
 void si_shader_apply_scratch_relocs(struct si_context *sctx,
 			struct si_shader *shader,
 			uint64_t scratch_va);




More information about the mesa-commit mailing list