*out_num_cbufs = num_cbufs;
}
+static void
+iris_debug_recompile(struct iris_context *ice,
+ struct shader_info *info,
+ unsigned program_string_id,
+ const void *key)
+{
+ struct iris_screen *screen = (struct iris_screen *) ice->ctx.screen;
+ const struct brw_compiler *c = screen->compiler;
+
+ if (!info)
+ return;
+
+ c->shader_perf_log(&ice->dbg, "Recompiling %s shader for program %s: %s\n",
+ _mesa_shader_stage_to_string(info->stage),
+ info->name ? info->name : "(no identifier)",
+ info->label ? info->label : "");
+
+ const void *old_key =
+ iris_find_previous_compile(ice, info->stage, program_string_id);
+
+ brw_debug_key_recompile(c, &ice->dbg, info->stage, old_key, key);
+}
+
+
/**
* Compile a vertex shader, and upload the assembly.
*/
num_cbufs);
if (ish->compiled_once) {
- perf_debug(&ice->dbg, "Recompiling vertex shader\n");
+ iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
} else {
ish->compiled_once = true;
}
if (ish) {
if (ish->compiled_once) {
- perf_debug(&ice->dbg, "Recompiling tessellation control shader\n");
+ iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
} else {
ish->compiled_once = true;
}
num_cbufs);
if (ish->compiled_once) {
- perf_debug(&ice->dbg, "Recompiling tessellation evaluation shader\n");
+ iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
} else {
ish->compiled_once = true;
}
num_cbufs);
if (ish->compiled_once) {
- perf_debug(&ice->dbg, "Recompiling geometry shader\n");
+ iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
} else {
ish->compiled_once = true;
}
num_cbufs);
if (ish->compiled_once) {
- perf_debug(&ice->dbg, "Recompiling fragment shader\n");
+ iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
} else {
ish->compiled_once = true;
}
num_cbufs);
if (ish->compiled_once) {
- perf_debug(&ice->dbg, "Recompiling compute shader\n");
+ iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
} else {
ish->compiled_once = true;
}