diff options
author | Marek Olšák <[email protected]> | 2018-01-10 23:25:37 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2018-01-31 03:21:20 +0100 |
commit | 148b48646b6ae093fde5e243c22e894bb4b96e36 (patch) | |
tree | 1604ce4258a86eb382bdf8db9b5b9c6a114912f1 /src/gallium/drivers/radeonsi/si_shader.c | |
parent | c02c9ee550d137fbea3ed105131d621d6af5813b (diff) |
radeonsi: print shader-db stats for main parts, not final binaries
This is needed to get shader-db stats for LS,HS,ES,GS stages on gfx9.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.c | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 7304d7e00db..9458920b9d7 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -5427,15 +5427,29 @@ static void si_calculate_max_simd_waves(struct si_shader *shader) conf->max_simd_waves = max_simd_waves; } +void si_shader_dump_stats_for_shader_db(const struct si_shader *shader, + struct pipe_debug_callback *debug) +{ + const struct si_shader_config *conf = &shader->config; + + pipe_debug_message(debug, SHADER_INFO, + "Shader Stats: SGPRS: %d VGPRS: %d Code Size: %d " + "LDS: %d Scratch: %d Max Waves: %d Spilled SGPRs: %d " + "Spilled VGPRs: %d PrivMem VGPRs: %d", + conf->num_sgprs, conf->num_vgprs, + si_get_shader_binary_size(shader), + conf->lds_size, conf->scratch_bytes_per_wave, + conf->max_simd_waves, conf->spilled_sgprs, + conf->spilled_vgprs, conf->private_mem_vgprs); +} + static void si_shader_dump_stats(struct si_screen *sscreen, const struct si_shader *shader, - struct pipe_debug_callback *debug, unsigned processor, FILE *file, bool check_debug_option) { const struct si_shader_config *conf = &shader->config; - unsigned code_size = si_get_shader_binary_size(shader); if (!check_debug_option || si_can_dump_shader(sscreen, processor)) { @@ -5459,19 +5473,11 @@ static void si_shader_dump_stats(struct si_screen *sscreen, "********************\n\n\n", conf->num_sgprs, conf->num_vgprs, conf->spilled_sgprs, conf->spilled_vgprs, - conf->private_mem_vgprs, code_size, + conf->private_mem_vgprs, + si_get_shader_binary_size(shader), conf->lds_size, conf->scratch_bytes_per_wave, conf->max_simd_waves); } - - pipe_debug_message(debug, SHADER_INFO, - "Shader Stats: SGPRS: %d VGPRS: %d Code Size: %d " - "LDS: %d Scratch: %d Max Waves: %d Spilled SGPRs: %d " - "Spilled VGPRs: %d PrivMem VGPRs: %d", - conf->num_sgprs, conf->num_vgprs, code_size, - conf->lds_size, conf->scratch_bytes_per_wave, - conf->max_simd_waves, conf->spilled_sgprs, - conf->spilled_vgprs, conf->private_mem_vgprs); } const char *si_get_shader_name(const struct si_shader *shader, unsigned processor) @@ -5549,7 +5555,7 @@ void si_shader_dump(struct si_screen *sscreen, const struct si_shader *shader, fprintf(file, "\n"); } - si_shader_dump_stats(sscreen, shader, debug, processor, file, + si_shader_dump_stats(sscreen, shader, processor, file, check_debug_option); } @@ -6980,6 +6986,7 @@ int si_compile_tgsi_shader(struct si_screen *sscreen, } si_calculate_max_simd_waves(shader); + si_shader_dump_stats_for_shader_db(shader, debug); return 0; } |