Mesa (master): radeonsi: Only dump shaders with environment variable RADEON_DUMP_SHADERS=1.
Michel Dänzer
daenzer at kemper.freedesktop.org
Tue Jun 12 18:19:41 UTC 2012
Module: Mesa
Branch: master
Commit: 4c4ef9c29acf4f1f40aa3c5d268322efd26c1786
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c4ef9c29acf4f1f40aa3c5d268322efd26c1786
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Thu Jun 7 19:30:47 2012 +0200
radeonsi: Only dump shaders with environment variable RADEON_DUMP_SHADERS=1.
---
src/gallium/drivers/radeon/SICodeEmitter.cpp | 6 +++++-
src/gallium/drivers/radeonsi/radeonsi_shader.c | 23 +++++++++++++++--------
2 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/radeon/SICodeEmitter.cpp b/src/gallium/drivers/radeon/SICodeEmitter.cpp
index 1d24706..585d418 100644
--- a/src/gallium/drivers/radeon/SICodeEmitter.cpp
+++ b/src/gallium/drivers/radeon/SICodeEmitter.cpp
@@ -156,8 +156,12 @@ void SICodeEmitter::emitState(MachineFunction & MF)
bool SICodeEmitter::runOnMachineFunction(MachineFunction &MF)
{
- MF.dump();
TM = &MF.getTarget();
+ const AMDILSubtarget &STM = TM->getSubtarget<AMDILSubtarget>();
+
+ if (STM.dumpCode()) {
+ MF.dump();
+ }
emitState(MF);
diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c
index e625a74..0a4f04b 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
+++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
@@ -543,6 +543,9 @@ int si_pipe_shader_create(
unsigned char * inst_bytes;
unsigned inst_byte_count;
unsigned i;
+ bool dump;
+
+ dump = debug_get_bool_option("RADEON_DUMP_SHADERS", FALSE);
radeon_llvm_context_init(&si_shader_ctx.radeon_bld);
bld_base = &si_shader_ctx.radeon_bld.soa.bld_base;
@@ -568,14 +571,18 @@ int si_pipe_shader_create(
radeon_llvm_finalize_module(&si_shader_ctx.radeon_bld);
mod = bld_base->base.gallivm->module;
- tgsi_dump(shader->tokens, 0);
- LLVMDumpModule(mod);
- radeon_llvm_compile(mod, &inst_bytes, &inst_byte_count, "SI", 1 /* dump */);
- fprintf(stderr, "SI CODE:\n");
- for (i = 0; i < inst_byte_count; i+=4 ) {
- fprintf(stderr, "%02x%02x%02x%02x\n", inst_bytes[i + 3],
- inst_bytes[i + 2], inst_bytes[i + 1],
- inst_bytes[i]);
+ if (dump) {
+ tgsi_dump(shader->tokens, 0);
+ LLVMDumpModule(mod);
+ }
+ radeon_llvm_compile(mod, &inst_bytes, &inst_byte_count, "SI", dump);
+ if (dump) {
+ fprintf(stderr, "SI CODE:\n");
+ for (i = 0; i < inst_byte_count; i+=4 ) {
+ fprintf(stderr, "%02x%02x%02x%02x\n", inst_bytes[i + 3],
+ inst_bytes[i + 2], inst_bytes[i + 1],
+ inst_bytes[i]);
+ }
}
shader->num_sgprs = util_le32_to_cpu(*(uint32_t*)inst_bytes);
More information about the mesa-commit
mailing list