• Home
  • Raw
  • Download

Lines Matching full:state

41  * Per-register validation state.
63 /* map of register -> validation state (struct above) */
107 log_error(validate_state *state, const char *cond, const char *file, int line) in log_error() argument
111 if (state->instr) in log_error()
112 obj = state->instr; in log_error()
113 else if (state->var) in log_error()
114 obj = state->var; in log_error()
118 char *msg = ralloc_asprintf(state->errors, "error: %s (%s:%d)", in log_error()
121 _mesa_hash_table_insert(state->errors, obj, msg); in log_error()
124 #define validate_assert(state, cond) do { \ argument
126 log_error(state, #cond, __FILE__, __LINE__); \
129 static void validate_src(nir_src *src, validate_state *state);
132 validate_reg_src(nir_src *src, validate_state *state) in validate_reg_src() argument
134 validate_assert(state, src->reg.reg != NULL); in validate_reg_src()
137 entry = _mesa_hash_table_search(state->regs, src->reg.reg); in validate_reg_src()
138 validate_assert(state, entry); in validate_reg_src()
142 if (state->instr) { in validate_reg_src()
145 validate_assert(state, state->if_stmt); in validate_reg_src()
150 validate_assert(state, reg_state->where_defined == state->impl && in validate_reg_src()
154 validate_assert(state, (src->reg.reg->num_array_elems == 0 || in validate_reg_src()
159 validate_assert(state, src->reg.reg->num_array_elems != 0); in validate_reg_src()
160 validate_assert(state, (src->reg.indirect->is_ssa || in validate_reg_src()
163 validate_src(src->reg.indirect, state); in validate_reg_src()
168 validate_ssa_src(nir_src *src, validate_state *state) in validate_ssa_src() argument
170 validate_assert(state, src->ssa != NULL); in validate_ssa_src()
172 struct hash_entry *entry = _mesa_hash_table_search(state->ssa_defs, src->ssa); in validate_ssa_src()
174 validate_assert(state, entry); in validate_ssa_src()
181 validate_assert(state, def_state->where_defined == state->impl && in validate_ssa_src()
184 if (state->instr) { in validate_ssa_src()
187 validate_assert(state, state->if_stmt); in validate_ssa_src()
195 validate_src(nir_src *src, validate_state *state) in validate_src() argument
197 if (state->instr) in validate_src()
198 validate_assert(state, src->parent_instr == state->instr); in validate_src()
200 validate_assert(state, src->parent_if == state->if_stmt); in validate_src()
203 validate_ssa_src(src, state); in validate_src()
205 validate_reg_src(src, state); in validate_src()
209 validate_alu_src(nir_alu_instr *instr, unsigned index, validate_state *state) in validate_alu_src() argument
226 validate_assert(state, src->swizzle[i] < 4); in validate_alu_src()
229 validate_assert(state, src->swizzle[i] < num_components); in validate_alu_src()
236 validate_assert(state, src_bit_size == 16 || src_bit_size == 32 || src_bit_size == 64); in validate_alu_src()
240 validate_assert(state, nir_alu_type_get_type_size(src_type) == src_bit_size); in validate_alu_src()
246 validate_assert(state, dest_bit_size == src_bit_size); in validate_alu_src()
250 validate_src(&src->src, state); in validate_alu_src()
254 validate_reg_dest(nir_reg_dest *dest, validate_state *state) in validate_reg_dest() argument
256 validate_assert(state, dest->reg != NULL); in validate_reg_dest()
258 validate_assert(state, dest->parent_instr == state->instr); in validate_reg_dest()
261 entry2 = _mesa_hash_table_search(state->regs, dest->reg); in validate_reg_dest()
263 validate_assert(state, entry2); in validate_reg_dest()
269 validate_assert(state, reg_state->where_defined == state->impl && in validate_reg_dest()
273 validate_assert(state, (dest->reg->num_array_elems == 0 || in validate_reg_dest()
278 validate_assert(state, dest->reg->num_array_elems != 0); in validate_reg_dest()
279 validate_assert(state, (dest->indirect->is_ssa || dest->indirect->reg.indirect == NULL) && in validate_reg_dest()
281 validate_src(dest->indirect, state); in validate_reg_dest()
286 validate_ssa_def(nir_ssa_def *def, validate_state *state) in validate_ssa_def() argument
288 validate_assert(state, def->index < state->impl->ssa_alloc); in validate_ssa_def()
289 validate_assert(state, !BITSET_TEST(state->ssa_defs_found, def->index)); in validate_ssa_def()
290 BITSET_SET(state->ssa_defs_found, def->index); in validate_ssa_def()
292 validate_assert(state, def->parent_instr == state->instr); in validate_ssa_def()
294 validate_assert(state, def->num_components <= 4); in validate_ssa_def()
299 ssa_def_validate_state *def_state = ralloc(state->ssa_defs, in validate_ssa_def()
301 def_state->where_defined = state->impl; in validate_ssa_def()
306 _mesa_hash_table_insert(state->ssa_defs, def, def_state); in validate_ssa_def()
310 validate_dest(nir_dest *dest, validate_state *state) in validate_dest() argument
313 validate_ssa_def(&dest->ssa, state); in validate_dest()
315 validate_reg_dest(&dest->reg, state); in validate_dest()
319 validate_alu_dest(nir_alu_instr *instr, validate_state *state) in validate_alu_dest() argument
331 validate_assert(state, is_packed || !(dest->write_mask & ~((1 << dest_size) - 1))); in validate_alu_dest()
336 nir_alu_instr *alu = nir_instr_as_alu(state->instr); in validate_alu_dest()
337 validate_assert(state, in validate_alu_dest()
348 validate_assert(state, bit_size == 16 || bit_size == 32 || bit_size == 64); in validate_alu_dest()
350 validate_assert(state, nir_alu_type_get_type_size(type) == 0 || in validate_alu_dest()
353 validate_dest(&dest->dest, state); in validate_alu_dest()
357 validate_alu_instr(nir_alu_instr *instr, validate_state *state) in validate_alu_instr() argument
359 validate_assert(state, instr->op < nir_num_opcodes); in validate_alu_instr()
362 validate_alu_src(instr, i, state); in validate_alu_instr()
365 validate_alu_dest(instr, state); in validate_alu_instr()
369 validate_deref_chain(nir_deref *deref, validate_state *state) in validate_deref_chain() argument
371 validate_assert(state, deref->child == NULL || ralloc_parent(deref->child) == deref); in validate_deref_chain()
377 validate_assert(state, deref->type == glsl_get_array_element(parent->type)); in validate_deref_chain()
380 validate_src(&nir_deref_as_array(deref)->indirect, state); in validate_deref_chain()
385 validate_assert(state, deref->type == in validate_deref_chain()
394 validate_assert(state, !"Invalid deref type"); in validate_deref_chain()
404 validate_var_use(nir_variable *var, validate_state *state) in validate_var_use() argument
407 struct hash_entry *entry = _mesa_hash_table_search(state->var_defs, var); in validate_var_use()
409 validate_assert(state, entry); in validate_var_use()
410 validate_assert(state, (nir_function_impl *) entry->data == state->impl); in validate_var_use()
415 validate_deref_var(void *parent_mem_ctx, nir_deref_var *deref, validate_state *state) in validate_deref_var() argument
417 validate_assert(state, deref != NULL); in validate_deref_var()
418 validate_assert(state, ralloc_parent(deref) == parent_mem_ctx); in validate_deref_var()
419 validate_assert(state, deref->deref.type == deref->var->type); in validate_deref_var()
421 validate_var_use(deref->var, state); in validate_deref_var()
423 validate_deref_chain(&deref->deref, state); in validate_deref_var()
427 validate_intrinsic_instr(nir_intrinsic_instr *instr, validate_state *state) in validate_intrinsic_instr() argument
436 validate_assert(state, components_read > 0); in validate_intrinsic_instr()
439 validate_assert(state, components_read <= instr->src[i].ssa->num_components); in validate_intrinsic_instr()
441 validate_assert(state, components_read <= instr->src[i].reg.reg->num_components); in validate_intrinsic_instr()
444 validate_src(&instr->src[i], state); in validate_intrinsic_instr()
449 validate_deref_var(instr, instr->variables[i], state); in validate_intrinsic_instr()
458 validate_assert(state, components_written > 0); in validate_intrinsic_instr()
461 validate_assert(state, components_written <= instr->dest.ssa.num_components); in validate_intrinsic_instr()
463 validate_assert(state, components_written <= instr->dest.reg.reg->num_components); in validate_intrinsic_instr()
466 validate_dest(&instr->dest, state); in validate_intrinsic_instr()
473 validate_assert(state, glsl_type_is_vector_or_scalar(type) || in validate_intrinsic_instr()
476 validate_assert(state, instr->num_components == glsl_get_vector_elements(type)); in validate_intrinsic_instr()
482 validate_assert(state, glsl_type_is_vector_or_scalar(type) || in validate_intrinsic_instr()
485 validate_assert(state, instr->num_components == glsl_get_vector_elements(type)); in validate_intrinsic_instr()
486 validate_assert(state, instr->variables[0]->var->data.mode != nir_var_shader_in && in validate_intrinsic_instr()
489 …validate_assert(state, (nir_intrinsic_write_mask(instr) & ~((1 << instr->num_components) - 1)) == … in validate_intrinsic_instr()
493 validate_assert(state, nir_deref_tail(&instr->variables[0]->deref)->type == in validate_intrinsic_instr()
495 validate_assert(state, instr->variables[0]->var->data.mode != nir_var_shader_in && in validate_intrinsic_instr()
505 validate_tex_instr(nir_tex_instr *instr, validate_state *state) in validate_tex_instr() argument
512 validate_assert(state, !src_type_seen[instr->src[i].src_type]); in validate_tex_instr()
514 validate_src(&instr->src[i].src, state); in validate_tex_instr()
518 validate_deref_var(instr, instr->texture, state); in validate_tex_instr()
521 validate_deref_var(instr, instr->sampler, state); in validate_tex_instr()
523 validate_dest(&instr->dest, state); in validate_tex_instr()
527 validate_call_instr(nir_call_instr *instr, validate_state *state) in validate_call_instr() argument
530 validate_assert(state, glsl_type_is_void(instr->callee->return_type)); in validate_call_instr()
532 validate_assert(state, instr->return_deref->deref.type == instr->callee->return_type); in validate_call_instr()
533 validate_deref_var(instr, instr->return_deref, state); in validate_call_instr()
536 validate_assert(state, instr->num_params == instr->callee->num_params); in validate_call_instr()
539 validate_assert(state, instr->callee->params[i].type == instr->params[i]->deref.type); in validate_call_instr()
540 validate_deref_var(instr, instr->params[i], state); in validate_call_instr()
545 validate_load_const_instr(nir_load_const_instr *instr, validate_state *state) in validate_load_const_instr() argument
547 validate_ssa_def(&instr->def, state); in validate_load_const_instr()
551 validate_ssa_undef_instr(nir_ssa_undef_instr *instr, validate_state *state) in validate_ssa_undef_instr() argument
553 validate_ssa_def(&instr->def, state); in validate_ssa_undef_instr()
557 validate_phi_instr(nir_phi_instr *instr, validate_state *state) in validate_phi_instr() argument
564 validate_dest(&instr->dest, state); in validate_phi_instr()
567 validate_assert(state, exec_list_length(&instr->srcs) == in validate_phi_instr()
568 state->block->predecessors->entries); in validate_phi_instr()
572 validate_instr(nir_instr *instr, validate_state *state) in validate_instr() argument
574 validate_assert(state, instr->block == state->block); in validate_instr()
576 state->instr = instr; in validate_instr()
580 validate_alu_instr(nir_instr_as_alu(instr), state); in validate_instr()
584 validate_call_instr(nir_instr_as_call(instr), state); in validate_instr()
588 validate_intrinsic_instr(nir_instr_as_intrinsic(instr), state); in validate_instr()
592 validate_tex_instr(nir_instr_as_tex(instr), state); in validate_instr()
596 validate_load_const_instr(nir_instr_as_load_const(instr), state); in validate_instr()
600 validate_phi_instr(nir_instr_as_phi(instr), state); in validate_instr()
604 validate_ssa_undef_instr(nir_instr_as_ssa_undef(instr), state); in validate_instr()
611 validate_assert(state, !"Invalid ALU instruction type"); in validate_instr()
615 state->instr = NULL; in validate_instr()
619 validate_phi_src(nir_phi_instr *instr, nir_block *pred, validate_state *state) in validate_phi_src() argument
621 state->instr = &instr->instr; in validate_phi_src()
623 validate_assert(state, instr->dest.is_ssa); in validate_phi_src()
628 validate_assert(state, src->src.is_ssa); in validate_phi_src()
629 validate_assert(state, src->src.ssa->num_components == in validate_phi_src()
632 validate_src(&src->src, state); in validate_phi_src()
633 state->instr = NULL; in validate_phi_src()
642 validate_phi_srcs(nir_block *block, nir_block *succ, validate_state *state) in validate_phi_srcs() argument
648 validate_phi_src(nir_instr_as_phi(instr), block, state); in validate_phi_srcs()
652 static void validate_cf_node(nir_cf_node *node, validate_state *state);
655 validate_block(nir_block *block, validate_state *state) in validate_block() argument
657 validate_assert(state, block->cf_node.parent == state->parent_node); in validate_block()
659 state->block = block; in validate_block()
664 validate_assert(state, instr == nir_block_first_instr(block) || in validate_block()
669 validate_assert(state, instr == nir_block_last_instr(block)); in validate_block()
672 validate_instr(instr, state); in validate_block()
675 validate_assert(state, block->successors[0] != NULL); in validate_block()
676 validate_assert(state, block->successors[0] != block->successors[1]); in validate_block()
682 validate_assert(state, entry); in validate_block()
684 validate_phi_srcs(block, block->successors[i], state); in validate_block()
691 validate_assert(state, pred->successors[0] == block || in validate_block()
697 validate_assert(state, block->successors[1] == NULL); in validate_block()
702 nir_cf_node_as_block(nir_cf_node_next(&state->loop->cf_node)); in validate_block()
703 validate_assert(state, block->successors[0] == after); in validate_block()
708 nir_block *first = nir_loop_first_block(state->loop); in validate_block()
709 validate_assert(state, block->successors[0] == first); in validate_block()
714 validate_assert(state, block->successors[0] == state->impl->end_block); in validate_block()
723 switch (state->parent_node->type) { in validate_block()
725 nir_block *first = nir_loop_first_block(state->loop); in validate_block()
726 validate_assert(state, block->successors[0] == first); in validate_block()
735 nir_cf_node_as_block(nir_cf_node_next(state->parent_node)); in validate_block()
736 validate_assert(state, block->successors[0] == after); in validate_block()
737 validate_assert(state, block->successors[1] == NULL); in validate_block()
742 validate_assert(state, block->successors[0] == state->impl->end_block); in validate_block()
743 validate_assert(state, block->successors[1] == NULL); in validate_block()
752 validate_assert(state, block->successors[0] == in validate_block()
754 validate_assert(state, block->successors[1] == in validate_block()
757 validate_assert(state, next->type == nir_cf_node_loop); in validate_block()
759 validate_assert(state, block->successors[0] == in validate_block()
761 validate_assert(state, block->successors[1] == NULL); in validate_block()
768 validate_if(nir_if *if_stmt, validate_state *state) in validate_if() argument
770 state->if_stmt = if_stmt; in validate_if()
772 validate_assert(state, !exec_node_is_head_sentinel(if_stmt->cf_node.node.prev)); in validate_if()
774 validate_assert(state, prev_node->type == nir_cf_node_block); in validate_if()
776 validate_assert(state, !exec_node_is_tail_sentinel(if_stmt->cf_node.node.next)); in validate_if()
778 validate_assert(state, next_node->type == nir_cf_node_block); in validate_if()
780 validate_src(&if_stmt->condition, state); in validate_if()
782 validate_assert(state, !exec_list_is_empty(&if_stmt->then_list)); in validate_if()
783 validate_assert(state, !exec_list_is_empty(&if_stmt->else_list)); in validate_if()
785 nir_cf_node *old_parent = state->parent_node; in validate_if()
786 state->parent_node = &if_stmt->cf_node; in validate_if()
790 validate_cf_node(cf_node, state); in validate_if()
795 validate_cf_node(cf_node, state); in validate_if()
798 state->parent_node = old_parent; in validate_if()
799 state->if_stmt = NULL; in validate_if()
803 validate_loop(nir_loop *loop, validate_state *state) in validate_loop() argument
805 validate_assert(state, !exec_node_is_head_sentinel(loop->cf_node.node.prev)); in validate_loop()
807 validate_assert(state, prev_node->type == nir_cf_node_block); in validate_loop()
809 validate_assert(state, !exec_node_is_tail_sentinel(loop->cf_node.node.next)); in validate_loop()
811 validate_assert(state, next_node->type == nir_cf_node_block); in validate_loop()
813 validate_assert(state, !exec_list_is_empty(&loop->body)); in validate_loop()
815 nir_cf_node *old_parent = state->parent_node; in validate_loop()
816 state->parent_node = &loop->cf_node; in validate_loop()
817 nir_loop *old_loop = state->loop; in validate_loop()
818 state->loop = loop; in validate_loop()
822 validate_cf_node(cf_node, state); in validate_loop()
825 state->parent_node = old_parent; in validate_loop()
826 state->loop = old_loop; in validate_loop()
830 validate_cf_node(nir_cf_node *node, validate_state *state) in validate_cf_node() argument
832 validate_assert(state, node->parent == state->parent_node); in validate_cf_node()
836 validate_block(nir_cf_node_as_block(node), state); in validate_cf_node()
840 validate_if(nir_cf_node_as_if(node), state); in validate_cf_node()
844 validate_loop(nir_cf_node_as_loop(node), state); in validate_cf_node()
853 prevalidate_reg_decl(nir_register *reg, bool is_global, validate_state *state) in prevalidate_reg_decl() argument
855 validate_assert(state, reg->is_global == is_global); in prevalidate_reg_decl()
858 validate_assert(state, reg->index < state->shader->reg_alloc); in prevalidate_reg_decl()
860 validate_assert(state, reg->index < state->impl->reg_alloc); in prevalidate_reg_decl()
861 validate_assert(state, !BITSET_TEST(state->regs_found, reg->index)); in prevalidate_reg_decl()
862 BITSET_SET(state->regs_found, reg->index); in prevalidate_reg_decl()
868 reg_validate_state *reg_state = ralloc(state->regs, reg_validate_state); in prevalidate_reg_decl()
876 reg_state->where_defined = is_global ? NULL : state->impl; in prevalidate_reg_decl()
878 _mesa_hash_table_insert(state->regs, reg, reg_state); in prevalidate_reg_decl()
882 postvalidate_reg_decl(nir_register *reg, validate_state *state) in postvalidate_reg_decl() argument
884 struct hash_entry *entry = _mesa_hash_table_search(state->regs, reg); in postvalidate_reg_decl()
891 validate_assert(state, entry); in postvalidate_reg_decl()
906 validate_assert(state, entry); in postvalidate_reg_decl()
921 validate_assert(state, entry); in postvalidate_reg_decl()
936 validate_var_decl(nir_variable *var, bool is_global, validate_state *state) in validate_var_decl() argument
938 state->var = var; in validate_var_decl()
940 validate_assert(state, is_global == nir_variable_is_global(var)); in validate_var_decl()
943 validate_assert(state, util_bitcount(var->data.mode) == 1); in validate_var_decl()
950 if (nir_is_per_vertex_io(var, state->shader->stage)) { in validate_var_decl()
964 _mesa_hash_table_insert(state->var_defs, var, state->impl); in validate_var_decl()
967 state->var = NULL; in validate_var_decl()
973 validate_state *state = void_state; in postvalidate_ssa_def() local
975 struct hash_entry *entry = _mesa_hash_table_search(state->ssa_defs, def); in postvalidate_ssa_def()
982 validate_assert(state, entry); in postvalidate_ssa_def()
997 validate_assert(state, entry); in postvalidate_ssa_def()
1014 validate_function_impl(nir_function_impl *impl, validate_state *state) in validate_function_impl() argument
1016 validate_assert(state, impl->function->impl == impl); in validate_function_impl()
1017 validate_assert(state, impl->cf_node.parent == NULL); in validate_function_impl()
1019 validate_assert(state, impl->num_params == impl->function->num_params); in validate_function_impl()
1021 validate_assert(state, impl->params[i]->type == impl->function->params[i].type); in validate_function_impl()
1022 validate_assert(state, impl->params[i]->data.mode == nir_var_param); in validate_function_impl()
1023 validate_assert(state, impl->params[i]->data.location == i); in validate_function_impl()
1024 validate_var_decl(impl->params[i], false, state); in validate_function_impl()
1028 validate_assert(state, impl->return_var == NULL); in validate_function_impl()
1030 validate_assert(state, impl->return_var->type == impl->function->return_type); in validate_function_impl()
1031 validate_assert(state, impl->return_var->data.mode == nir_var_param); in validate_function_impl()
1032 validate_assert(state, impl->return_var->data.location == -1); in validate_function_impl()
1033 validate_var_decl(impl->return_var, false, state); in validate_function_impl()
1036 validate_assert(state, exec_list_is_empty(&impl->end_block->instr_list)); in validate_function_impl()
1037 validate_assert(state, impl->end_block->successors[0] == NULL); in validate_function_impl()
1038 validate_assert(state, impl->end_block->successors[1] == NULL); in validate_function_impl()
1040 state->impl = impl; in validate_function_impl()
1041 state->parent_node = &impl->cf_node; in validate_function_impl()
1045 validate_var_decl(var, false, state); in validate_function_impl()
1048 state->regs_found = realloc(state->regs_found, in validate_function_impl()
1051 memset(state->regs_found, 0, BITSET_WORDS(impl->reg_alloc) * in validate_function_impl()
1055 prevalidate_reg_decl(reg, false, state); in validate_function_impl()
1058 state->ssa_defs_found = realloc(state->ssa_defs_found, in validate_function_impl()
1061 memset(state->ssa_defs_found, 0, BITSET_WORDS(impl->ssa_alloc) * in validate_function_impl()
1065 validate_cf_node(node, state); in validate_function_impl()
1069 postvalidate_reg_decl(reg, state); in validate_function_impl()
1074 nir_foreach_ssa_def(instr, postvalidate_ssa_def, state); in validate_function_impl()
1079 validate_function(nir_function *func, validate_state *state) in validate_function() argument
1082 validate_assert(state, func->impl->function == func); in validate_function()
1083 validate_function_impl(func->impl, state); in validate_function()
1088 init_validate_state(validate_state *state) in init_validate_state() argument
1090 state->regs = _mesa_hash_table_create(NULL, _mesa_hash_pointer, in init_validate_state()
1092 state->ssa_defs = _mesa_hash_table_create(NULL, _mesa_hash_pointer, in init_validate_state()
1094 state->ssa_defs_found = NULL; in init_validate_state()
1095 state->regs_found = NULL; in init_validate_state()
1096 state->var_defs = _mesa_hash_table_create(NULL, _mesa_hash_pointer, in init_validate_state()
1098 state->errors = _mesa_hash_table_create(NULL, _mesa_hash_pointer, in init_validate_state()
1101 state->loop = NULL; in init_validate_state()
1102 state->instr = NULL; in init_validate_state()
1103 state->var = NULL; in init_validate_state()
1107 destroy_validate_state(validate_state *state) in destroy_validate_state() argument
1109 _mesa_hash_table_destroy(state->regs, NULL); in destroy_validate_state()
1110 _mesa_hash_table_destroy(state->ssa_defs, NULL); in destroy_validate_state()
1111 free(state->ssa_defs_found); in destroy_validate_state()
1112 free(state->regs_found); in destroy_validate_state()
1113 _mesa_hash_table_destroy(state->var_defs, NULL); in destroy_validate_state()
1114 _mesa_hash_table_destroy(state->errors, NULL); in destroy_validate_state()
1118 dump_errors(validate_state *state) in dump_errors() argument
1120 struct hash_table *errors = state->errors; in dump_errors()
1124 nir_print_shader_annotated(state->shader, stderr, errors); in dump_errors()
1147 validate_state state; in nir_validate_shader() local
1148 init_validate_state(&state); in nir_validate_shader()
1150 state.shader = shader; in nir_validate_shader()
1154 validate_var_decl(var, true, &state); in nir_validate_shader()
1159 validate_var_decl(var, true, &state); in nir_validate_shader()
1164 validate_var_decl(var, true, &state); in nir_validate_shader()
1169 validate_var_decl(var, true, &state); in nir_validate_shader()
1174 validate_var_decl(var, true, &state); in nir_validate_shader()
1179 validate_var_decl(var, true, &state); in nir_validate_shader()
1182 state.regs_found = realloc(state.regs_found, in nir_validate_shader()
1185 memset(state.regs_found, 0, BITSET_WORDS(shader->reg_alloc) * in nir_validate_shader()
1189 prevalidate_reg_decl(reg, true, &state); in nir_validate_shader()
1194 validate_function(func, &state); in nir_validate_shader()
1198 postvalidate_reg_decl(reg, &state); in nir_validate_shader()
1201 if (_mesa_hash_table_num_entries(state.errors) > 0) in nir_validate_shader()
1202 dump_errors(&state); in nir_validate_shader()
1204 destroy_validate_state(&state); in nir_validate_shader()