[Mesa-dev] [PATCH 2/3] radeonsi: print the number of spilled VGPRs

Marek Olšák maraeo at gmail.com
Wed Jun 8 15:36:30 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

---
 src/gallium/drivers/radeonsi/si_shader.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 512db42..e563aec 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -6040,6 +6040,8 @@ static void si_shader_dump_stats(struct si_screen *sscreen,
 	unsigned lds_increment = sscreen->b.chip_class >= CIK ? 512 : 256;
 	unsigned lds_per_wave = 0;
 	unsigned max_simd_waves = 10;
+	/* Assuming SGPRs aren't spilled. */
+	unsigned spilled_vgprs = conf->scratch_bytes_per_wave / 64 / 4;
 
 	/* Compute LDS usage for PS. */
 	if (processor == PIPE_SHADER_FRAGMENT) {
@@ -6086,22 +6088,23 @@ static void si_shader_dump_stats(struct si_screen *sscreen,
 		fprintf(file, "*** SHADER STATS ***\n"
 			"SGPRS: %d\n"
 			"VGPRS: %d\n"
+			"Spilled VGPRs: %d\n"
 			"Code Size: %d bytes\n"
 			"LDS: %d blocks\n"
 			"Scratch: %d bytes per wave\n"
 			"Max Waves: %d\n"
 			"********************\n",
-			conf->num_sgprs, conf->num_vgprs, code_size,
+			conf->num_sgprs, conf->num_vgprs, spilled_vgprs, code_size,
 			conf->lds_size, conf->scratch_bytes_per_wave,
 			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",
+			   "LDS: %d Scratch: %d Max Waves: %d Spilled VGPRs: %d",
 			   conf->num_sgprs, conf->num_vgprs, code_size,
 			   conf->lds_size, conf->scratch_bytes_per_wave,
-			   max_simd_waves);
+			   max_simd_waves, spilled_vgprs);
 }
 
 static const char *si_get_shader_name(struct si_shader *shader,
-- 
2.7.4



More information about the mesa-dev mailing list