nir/validate: don't validate the GC list by default

This seems really slow.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13547>
This commit is contained in:
Rhys Perry
2021-10-27 11:25:27 +01:00
parent e6853de6b0
commit 925c5f817d
3 changed files with 10 additions and 4 deletions

View File

@@ -1055,7 +1055,8 @@ validate_instr(nir_instr *instr, validate_state *state)
state->instr = instr;
validate_assert(state, _mesa_set_search(state->shader_gc_list, instr));
if (state->shader_gc_list)
validate_assert(state, _mesa_set_search(state->shader_gc_list, instr));
switch (instr->type) {
case nir_instr_type_alu:
@@ -1660,7 +1661,8 @@ init_validate_state(validate_state *state)
state->blocks = _mesa_pointer_set_create(state->mem_ctx);
state->var_defs = _mesa_pointer_hash_table_create(state->mem_ctx);
state->errors = _mesa_pointer_hash_table_create(state->mem_ctx);
state->shader_gc_list = _mesa_pointer_set_create(state->mem_ctx);
state->shader_gc_list = NIR_DEBUG(VALIDATE_GC_LIST) ?
_mesa_pointer_set_create(state->mem_ctx) : NULL;
state->loop = NULL;
state->instr = NULL;
@@ -1717,8 +1719,9 @@ nir_validate_shader(nir_shader *shader, const char *when)
validate_state state;
init_validate_state(&state);
list_for_each_entry(nir_instr, instr, &shader->gc_list, gc_node) {
_mesa_set_add(state.shader_gc_list, instr);
if (state.shader_gc_list) {
list_for_each_entry(nir_instr, instr, &shader->gc_list, gc_node)
_mesa_set_add(state.shader_gc_list, instr);
}
state.shader = shader;