diff --git a/.pick_status.json b/.pick_status.json index 3b580495ff3..88be2cbe521 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3604,7 +3604,7 @@ "description": "nir/print: Don't segfault checking has_debug_info", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "ce0f30b2301e8a7eb75f9a5fc1fa066bb7ad2569", "notes": null diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index c393bc3186d..1f5763ba301 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -145,7 +145,7 @@ print_def(nir_def *def, print_state *state) def->bit_size, sizes[def->num_components], padding, "", state->def_prefix, def->index); - if (state->shader->has_debug_info) { + if (def->parent_instr->has_debug_info) { nir_instr_debug_info *debug_info = nir_instr_get_debug_info(def->parent_instr); if (debug_info->variable_name) fprintf(fp, ".%s", debug_info->variable_name); @@ -406,7 +406,7 @@ print_src(const nir_src *src, print_state *state, nir_alu_type src_type) fprintf(fp, "%s%u", state->def_prefix, src->ssa->index); nir_instr *instr = src->ssa->parent_instr; - if (state->shader->has_debug_info) { + if (instr->has_debug_info) { nir_instr_debug_info *debug_info = nir_instr_get_debug_info(instr); if (debug_info->variable_name) fprintf(fp, ".%s", debug_info->variable_name); @@ -2048,7 +2048,7 @@ print_instr(const nir_instr *instr, print_state *state, unsigned tabs) debug_info->nir_line = (uint32_t)ftell(fp); } - if (state->shader->has_debug_info && !state->gather_debug_info) { + if (instr->has_debug_info && !state->gather_debug_info) { nir_instr_debug_info *debug_info = nir_instr_get_debug_info((nir_instr *)instr); bool changed = state->last_debug_info.spirv_offset != debug_info->spirv_offset;