diff options
author | Marek Olšák <[email protected]> | 2016-02-25 17:12:15 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-03-01 00:18:54 +0100 |
commit | 18df72b50b6adc0290d1f3f04a2b209dd12bf41b (patch) | |
tree | 7ff6918f4c179b2b6f73f5d46e51ae0e5b9fb1e3 /src | |
parent | 74b4ce81fbbb513198b8d2cae0460aa779574964 (diff) |
radeonsi: dump full shader disassemblies into ddebug logs
including prolog and epilog disassemblies
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_debug.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c index e16ebbdef3e..7c2b745a7de 100644 --- a/src/gallium/drivers/radeonsi/si_debug.c +++ b/src/gallium/drivers/radeonsi/si_debug.c @@ -34,15 +34,15 @@ DEBUG_GET_ONCE_OPTION(replace_shaders, "RADEON_REPLACE_SHADERS", NULL) -static void si_dump_shader(struct si_shader_ctx_state *state, const char *name, - FILE *f) +static void si_dump_shader(struct si_screen *sscreen, + struct si_shader_ctx_state *state, FILE *f) { if (!state->cso || !state->current) return; - fprintf(f, "%s shader disassembly:\n", name); si_dump_shader_key(state->cso->type, &state->current->key, f); - fprintf(f, "%s\n\n", state->current->binary.disasm_string); + si_shader_dump(sscreen, state->current, NULL, + state->cso->info.processor, f); } /** @@ -670,11 +670,11 @@ static void si_dump_debug_state(struct pipe_context *ctx, FILE *f, si_dump_debug_registers(sctx, f); si_dump_framebuffer(sctx, f); - si_dump_shader(&sctx->vs_shader, "Vertex", f); - si_dump_shader(&sctx->tcs_shader, "Tessellation control", f); - si_dump_shader(&sctx->tes_shader, "Tessellation evaluation", f); - si_dump_shader(&sctx->gs_shader, "Geometry", f); - si_dump_shader(&sctx->ps_shader, "Fragment", f); + si_dump_shader(sctx->screen, &sctx->vs_shader, f); + si_dump_shader(sctx->screen, &sctx->tcs_shader, f); + si_dump_shader(sctx->screen, &sctx->tes_shader, f); + si_dump_shader(sctx->screen, &sctx->gs_shader, f); + si_dump_shader(sctx->screen, &sctx->ps_shader, f); si_dump_last_bo_list(sctx, f); si_dump_last_ib(sctx, f); |