aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/vc4/vc4_qir_live_variables.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir_live_variables.c b/src/gallium/drivers/vc4/vc4_qir_live_variables.c
index 330e1c8f7a9..7108b3ee9b6 100644
--- a/src/gallium/drivers/vc4/vc4_qir_live_variables.c
+++ b/src/gallium/drivers/vc4/vc4_qir_live_variables.c
@@ -327,4 +327,27 @@ qir_calculate_live_intervals(struct vc4_compile *c)
;
qir_compute_start_end(c, c->num_temps);
+
+ if (vc4_debug & VC4_DEBUG_SHADERDB) {
+ int last_ip = 0;
+ for (int i = 0; i < c->num_temps; i++)
+ last_ip = MAX2(last_ip, c->temp_end[i]);
+
+ int reg_pressure = 0;
+ int max_reg_pressure = 0;
+ for (int i = 0; i < last_ip; i++) {
+ for (int j = 0; j < c->num_temps; j++) {
+ if (c->temp_start[j] == i)
+ reg_pressure++;
+ if (c->temp_end[j] == i)
+ reg_pressure--;
+ }
+ max_reg_pressure = MAX2(max_reg_pressure, reg_pressure);
+ }
+
+ fprintf(stderr, "SHADER-DB: %s prog %d/%d: %d max temps\n",
+ qir_get_stage_name(c->stage),
+ c->program_id, c->variant_id,
+ max_reg_pressure);
+ }
}