nir/validate: Print when the validation failed

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Jason Ekstrand
2018-10-18 15:18:30 -05:00
parent 292ebdbf98
commit 28bb6abd1d
9 changed files with 47 additions and 40 deletions

View File

@@ -1140,11 +1140,17 @@ destroy_validate_state(validate_state *state)
}
static void
dump_errors(validate_state *state)
dump_errors(validate_state *state, const char *when)
{
struct hash_table *errors = state->errors;
fprintf(stderr, "%d errors:\n", _mesa_hash_table_num_entries(errors));
if (when) {
fprintf(stderr, "NIR validation failed %s\n", when);
fprintf(stderr, "%d errors:\n", _mesa_hash_table_num_entries(errors));
} else {
fprintf(stderr, "NIR validation failed with %d errors:\n",
_mesa_hash_table_num_entries(errors));
}
nir_print_shader_annotated(state->shader, stderr, errors);
@@ -1160,7 +1166,7 @@ dump_errors(validate_state *state)
}
void
nir_validate_shader(nir_shader *shader)
nir_validate_shader(nir_shader *shader, const char *when)
{
static int should_validate = -1;
if (should_validate < 0)
@@ -1223,7 +1229,7 @@ nir_validate_shader(nir_shader *shader)
}
if (_mesa_hash_table_num_entries(state.errors) > 0)
dump_errors(&state);
dump_errors(&state, when);
destroy_validate_state(&state);
}