Lines Matching +full:- +full:d
45 struct dxil_dumper *d = calloc(1, sizeof(struct dxil_dumper)); in dxil_dump_create() local
46 d->buf = _mesa_string_buffer_create(NULL, 1024); in dxil_dump_create()
47 d->current_indent = 0; in dxil_dump_create()
48 return d; in dxil_dump_create()
51 void dxil_dump_free(struct dxil_dumper *d) in dxil_dump_free() argument
53 _mesa_string_buffer_destroy(d->buf); in dxil_dump_free()
54 d->buf = 0; in dxil_dump_free()
55 free(d); in dxil_dump_free()
58 void dxil_dump_buf_to_file(struct dxil_dumper *d, FILE *f) in dxil_dump_buf_to_file() argument
61 assert(d); in dxil_dump_buf_to_file()
62 assert(d->buf); in dxil_dump_buf_to_file()
63 fprintf(f, "%s", d->buf->buf); in dxil_dump_buf_to_file()
67 void dxil_dump_indention_inc(struct dxil_dumper *d) in dxil_dump_indention_inc() argument
69 ++d->current_indent; in dxil_dump_indention_inc()
73 void dxil_dump_indention_dec(struct dxil_dumper *d) in dxil_dump_indention_dec() argument
75 --d->current_indent; in dxil_dump_indention_dec()
76 assert(d->current_indent >= 0); in dxil_dump_indention_dec()
80 void dxil_dump_indent(struct dxil_dumper *d) in dxil_dump_indent() argument
82 for (int i = 0; i < 2 * d->current_indent; ++i) in dxil_dump_indent()
83 _mesa_string_buffer_append_char(d->buf, ' '); in dxil_dump_indent()
87 dxil_dump_module(struct dxil_dumper *d, struct dxil_module *m) in dxil_dump_module() argument
90 assert(d); in dxil_dump_module()
92 _mesa_string_buffer_printf(d->buf, "DXIL MODULE:\n"); in dxil_dump_module()
93 dump_metadata(d, m); in dxil_dump_module()
94 dump_shader_info(d, &m->info); in dxil_dump_module()
95 dump_types(d, &m->type_list); in dxil_dump_module()
96 dump_gvars(d, &m->gvar_list); in dxil_dump_module()
97 dump_funcs(d, &m->func_list); in dxil_dump_module()
98 dump_attr_set_list(d, &m->attr_set_list); in dxil_dump_module()
99 dump_constants(d, &m->const_list); in dxil_dump_module()
102 LIST_FOR_EACH_ENTRY(func_def, &m->func_def_list, head) { in dxil_dump_module()
103 dump_instrs(d, &func_def->instr_list); in dxil_dump_module()
106 dump_mdnodes(d, &m->mdnode_list); in dxil_dump_module()
107 dump_named_nodes(d, &m->md_named_node_list); in dxil_dump_module()
108 dump_io_signatures(d->buf, m); in dxil_dump_module()
109 dump_psv(d->buf, m); in dxil_dump_module()
110 _mesa_string_buffer_printf(d->buf, "END DXIL MODULE\n"); in dxil_dump_module()
114 dump_metadata(struct dxil_dumper *d, struct dxil_module *m) in dump_metadata() argument
116 _mesa_string_buffer_printf(d->buf, "Shader: %s\n", in dump_metadata()
117 dump_shader_string(m->shader_kind)); in dump_metadata()
119 _mesa_string_buffer_printf(d->buf, "Version: %d.%d\n", in dump_metadata()
120 m->major_version, m->minor_version); in dump_metadata()
122 dump_features(d->buf, &m->feats); in dump_metadata()
126 dump_shader_info(struct dxil_dumper *d, struct dxil_shader_info *info) in dump_shader_info() argument
128 _mesa_string_buffer_append(d->buf, "Shader Info:\n"); in dump_shader_info()
129 if (info->has_out_position) in dump_shader_info()
130 _mesa_string_buffer_append(d->buf, " has_out_position\n"); in dump_shader_info()
153 #define PRINT_FEAT(F) if (feat->F) _mesa_string_buffer_printf(buf, " %s\n", #F) in dump_features()
180 dump_types(struct dxil_dumper *d, struct list_head *list) in dump_types() argument
185 _mesa_string_buffer_append(d->buf, "Types:\n"); in dump_types()
186 dxil_dump_indention_inc(d); in dump_types()
188 dxil_dump_indent(d); in dump_types()
189 dump_type(d, type); in dump_types()
190 _mesa_string_buffer_append(d->buf, "\n"); in dump_types()
192 dxil_dump_indention_dec(d); in dump_types()
195 static void dump_type_name(struct dxil_dumper *d, const struct dxil_type *type) in dump_type_name() argument
198 _mesa_string_buffer_append(d->buf, "(type error)"); in dump_type_name()
202 switch (type->type) { in dump_type_name()
204 _mesa_string_buffer_append(d->buf, "void"); in dump_type_name()
207 _mesa_string_buffer_printf(d->buf, "int%d", type->int_bits); in dump_type_name()
210 _mesa_string_buffer_printf(d->buf, "float%d", type->float_bits); in dump_type_name()
213 dump_type_name(d, type->ptr_target_type); in dump_type_name()
214 _mesa_string_buffer_append(d->buf, "*"); in dump_type_name()
217 _mesa_string_buffer_printf(d->buf, "struct %s", type->struct_def.name); in dump_type_name()
220 dump_type_name(d, type->array_or_vector_def.elem_type); in dump_type_name()
221 _mesa_string_buffer_printf(d->buf, "[%zu]", type->array_or_vector_def.num_elems); in dump_type_name()
224 _mesa_string_buffer_append(d->buf, "("); in dump_type_name()
225 dump_type_name(d, type->function_def.ret_type); in dump_type_name()
226 _mesa_string_buffer_append(d->buf, ")("); in dump_type_name()
227 for (size_t i = 0; i < type->function_def.args.num_types; ++i) { in dump_type_name()
229 _mesa_string_buffer_append(d->buf, ", "); in dump_type_name()
230 dump_type_name(d, type->function_def.args.types[i]); in dump_type_name()
232 _mesa_string_buffer_append(d->buf, ")"); in dump_type_name()
235 _mesa_string_buffer_append(d->buf, "vector<"); in dump_type_name()
236 dump_type_name(d, type->array_or_vector_def.elem_type); in dump_type_name()
237 _mesa_string_buffer_printf(d->buf, ", %zu>", type->array_or_vector_def.num_elems); in dump_type_name()
240 _mesa_string_buffer_printf(d->buf, "unknown type %d", type->type); in dump_type_name()
245 dump_type(struct dxil_dumper *d, const struct dxil_type *type) in dump_type() argument
247 switch (type->type) { in dump_type()
249 _mesa_string_buffer_printf(d->buf, "struct %s {\n", type->struct_def.name); in dump_type()
250 dxil_dump_indention_inc(d); in dump_type()
252 for (size_t i = 0; i < type->struct_def.elem.num_types; ++i) { in dump_type()
253 dxil_dump_indent(d); in dump_type()
254 dump_type(d, type->struct_def.elem.types[i]); in dump_type()
255 _mesa_string_buffer_append(d->buf, "\n"); in dump_type()
257 dxil_dump_indention_dec(d); in dump_type()
258 dxil_dump_indent(d); in dump_type()
259 _mesa_string_buffer_append(d->buf, "}\n"); in dump_type()
262 dump_type_name(d, type); in dump_type()
268 dump_gvars(struct dxil_dumper *d, struct list_head *list) in dump_gvars() argument
273 _mesa_string_buffer_append(d->buf, "Global variables:\n"); in dump_gvars()
274 dxil_dump_indention_inc(d); in dump_gvars()
276 dxil_dump_indent(d); in dump_gvars()
277 _mesa_string_buffer_printf(d->buf, "address_space(%d) ", gvar->as); in dump_gvars()
278 if (gvar->constant) in dump_gvars()
279 _mesa_string_buffer_append(d->buf, "const "); in dump_gvars()
280 if (gvar->align) in dump_gvars()
281 _mesa_string_buffer_append(d->buf, "align "); in dump_gvars()
282 if (gvar->initializer) in dump_gvars()
283 _mesa_string_buffer_printf(d->buf, "init_id:%d\n", gvar->initializer->id); in dump_gvars()
284 dump_type_name(d, gvar->type); in dump_gvars()
285 _mesa_string_buffer_printf(d->buf, " val_id:%d\n", gvar->value.id); in dump_gvars()
287 dxil_dump_indention_dec(d); in dump_gvars()
291 dump_funcs(struct dxil_dumper *d, struct list_head *list) in dump_funcs() argument
296 _mesa_string_buffer_append(d->buf, "Functions:\n"); in dump_funcs()
297 dxil_dump_indention_inc(d); in dump_funcs()
299 dxil_dump_indent(d); in dump_funcs()
300 if (func->decl) in dump_funcs()
301 _mesa_string_buffer_append(d->buf, "declare "); in dump_funcs()
302 _mesa_string_buffer_append(d->buf, func->name); in dump_funcs()
303 _mesa_string_buffer_append_char(d->buf, ' '); in dump_funcs()
304 dump_type_name(d, func->type); in dump_funcs()
305 if (func->attr_set) in dump_funcs()
306 _mesa_string_buffer_printf(d->buf, " #%d", func->attr_set); in dump_funcs()
307 _mesa_string_buffer_append_char(d->buf, '\n'); in dump_funcs()
309 dxil_dump_indention_dec(d); in dump_funcs()
313 dump_attr_set_list(struct dxil_dumper *d, struct list_head *list) in dump_attr_set_list() argument
318 _mesa_string_buffer_append(d->buf, "Attribute set:\n"); in dump_attr_set_list()
319 dxil_dump_indention_inc(d); in dump_attr_set_list()
322 _mesa_string_buffer_printf(d->buf, " #%d: {", attr_id++); in dump_attr_set_list()
323 for (unsigned i = 0; i < attr->num_attrs; ++i) { in dump_attr_set_list()
325 _mesa_string_buffer_append_char(d->buf, ' '); in dump_attr_set_list()
327 if (attr->attrs[i].type == DXIL_ATTR_ENUM) { in dump_attr_set_list()
329 switch (attr->attrs[i].key.kind) { in dump_attr_set_list()
336 _mesa_string_buffer_append(d->buf, value); in dump_attr_set_list()
337 } else if (attr->attrs[i].type == DXIL_ATTR_STRING) { in dump_attr_set_list()
338 _mesa_string_buffer_append_char(d->buf, '"'); in dump_attr_set_list()
339 _mesa_string_buffer_append(d->buf, attr->attrs[i].key.str); in dump_attr_set_list()
340 _mesa_string_buffer_append_char(d->buf, '"'); in dump_attr_set_list()
341 } else if (attr->attrs[i].type == DXIL_ATTR_STRING_VALUE) { in dump_attr_set_list()
342 _mesa_string_buffer_append_char(d->buf, '"'); in dump_attr_set_list()
343 _mesa_string_buffer_append(d->buf, attr->attrs[i].key.str); in dump_attr_set_list()
344 _mesa_string_buffer_append(d->buf, "\"=\""); in dump_attr_set_list()
345 _mesa_string_buffer_append(d->buf, attr->attrs[i].value.str); in dump_attr_set_list()
346 _mesa_string_buffer_append_char(d->buf, '"'); in dump_attr_set_list()
349 _mesa_string_buffer_append(d->buf, "}\n"); in dump_attr_set_list()
351 dxil_dump_indention_dec(d); in dump_attr_set_list()
355 dump_constants(struct dxil_dumper *d, struct list_head *list) in dump_constants() argument
360 _mesa_string_buffer_append(d->buf, "Constants:\n"); in dump_constants()
361 dxil_dump_indention_inc(d); in dump_constants()
363 _mesa_string_buffer_append_char(d->buf, ' '); in dump_constants()
364 dump_value(d, &cnst->value); in dump_constants()
365 _mesa_string_buffer_append(d->buf, " = "); in dump_constants()
366 dump_type_name(d, cnst->value.type); in dump_constants()
367 if (!cnst->undef) { in dump_constants()
368 switch (cnst->value.type->type) { in dump_constants()
370 _mesa_string_buffer_printf(d->buf, " %10.5f\n", cnst->float_value); in dump_constants()
373 _mesa_string_buffer_printf(d->buf, " %" PRIdMAX "\n", cnst->int_value); in dump_constants()
376 _mesa_string_buffer_append(d->buf, "{"); in dump_constants()
378 i < cnst->value.type->array_or_vector_def.num_elems; i++) { in dump_constants()
379 _mesa_string_buffer_printf(d->buf, " %%%d", in dump_constants()
380 cnst->array_values[i]->id); in dump_constants()
381 dump_type_name(d, cnst->value.type); in dump_constants()
382 if (i != cnst->value.type->array_or_vector_def.num_elems - 1) in dump_constants()
383 _mesa_string_buffer_append(d->buf, ","); in dump_constants()
384 _mesa_string_buffer_append(d->buf, " "); in dump_constants()
386 _mesa_string_buffer_append(d->buf, "}\n"); in dump_constants()
389 _mesa_string_buffer_append(d->buf, "{"); in dump_constants()
391 i < cnst->value.type->struct_def.elem.num_types; i++) { in dump_constants()
392 _mesa_string_buffer_printf(d->buf, " %%%d", in dump_constants()
393 cnst->struct_values[i]->id); in dump_constants()
394 dump_type_name(d, cnst->struct_values[i]->type); in dump_constants()
395 if (i != cnst->value.type->struct_def.elem.num_types - 1) in dump_constants()
396 _mesa_string_buffer_append(d->buf, ","); in dump_constants()
397 _mesa_string_buffer_append(d->buf, " "); in dump_constants()
399 _mesa_string_buffer_append(d->buf, "}\n"); in dump_constants()
405 _mesa_string_buffer_append(d->buf, " undef\n"); in dump_constants()
407 dxil_dump_indention_dec(d); in dump_constants()
411 dump_instrs(struct dxil_dumper *d, struct list_head *list) in dump_instrs() argument
413 _mesa_string_buffer_append(d->buf, "Shader body:\n"); in dump_instrs()
414 dxil_dump_indention_inc(d); in dump_instrs()
418 dxil_dump_indent(d); in dump_instrs()
419 if (instr->has_value) { in dump_instrs()
420 dump_value(d, &instr->value); in dump_instrs()
421 _mesa_string_buffer_append(d->buf, " = "); in dump_instrs()
423 _mesa_string_buffer_append_char(d->buf, ' '); in dump_instrs()
426 switch (instr->type) { in dump_instrs()
427 case INSTR_BINOP: dump_instr_binop(d, &instr->binop); break; in dump_instrs()
428 case INSTR_CMP: dump_instr_cmp(d, &instr->cmp);break; in dump_instrs()
429 case INSTR_SELECT:dump_instr_select(d, &instr->select); break; in dump_instrs()
430 case INSTR_CAST: dump_instr_cast(d, &instr->cast); break; in dump_instrs()
431 case INSTR_CALL: dump_instr_call(d, &instr->call); break; in dump_instrs()
432 case INSTR_RET: dump_instr_ret(d, &instr->ret); break; in dump_instrs()
433 case INSTR_EXTRACTVAL: dump_instr_extractval(d, &instr->extractval); break; in dump_instrs()
434 case INSTR_BR: dump_instr_branch(d, &instr->br); break; in dump_instrs()
435 case INSTR_PHI: dump_instr_phi(d, &instr->phi); break; in dump_instrs()
436 case INSTR_ALLOCA: dump_instr_alloca(d, &instr->alloca); break; in dump_instrs()
437 case INSTR_GEP: dump_instr_gep(d, &instr->gep); break; in dump_instrs()
438 case INSTR_LOAD: dump_instr_load(d, &instr->load); break; in dump_instrs()
439 case INSTR_STORE: dump_instr_store(d, &instr->store); break; in dump_instrs()
440 case INSTR_ATOMICRMW: dump_instr_atomicrmw(d, &instr->atomicrmw); break; in dump_instrs()
442 _mesa_string_buffer_printf(d->buf, "unknown instruction type %d", instr->type); in dump_instrs()
445 _mesa_string_buffer_append(d->buf, "\n"); in dump_instrs()
447 dxil_dump_indention_dec(d); in dump_instrs()
451 dump_instr_binop(struct dxil_dumper *d, struct dxil_instr_binop *binop) in dump_instr_binop() argument
453 const char *str = binop->opcode < DXIL_BINOP_INSTR_COUNT ? in dump_instr_binop()
454 binop_strings[binop->opcode] : "INVALID"; in dump_instr_binop()
456 _mesa_string_buffer_printf(d->buf, "%s ", str); in dump_instr_binop()
457 dump_instr_print_operands(d, 2, binop->operands); in dump_instr_binop()
461 dump_instr_cmp(struct dxil_dumper *d, struct dxil_instr_cmp *cmp) in dump_instr_cmp() argument
463 const char *str = cmp->pred < DXIL_CMP_INSTR_COUNT ? in dump_instr_cmp()
464 pred_strings[cmp->pred] : "INVALID"; in dump_instr_cmp()
466 _mesa_string_buffer_printf(d->buf, "%s ", str); in dump_instr_cmp()
467 dump_instr_print_operands(d, 2, cmp->operands); in dump_instr_cmp()
471 dump_instr_select(struct dxil_dumper *d, struct dxil_instr_select *select) in dump_instr_select() argument
473 _mesa_string_buffer_append(d->buf, "sel "); in dump_instr_select()
474 dump_instr_print_operands(d, 3, select->operands); in dump_instr_select()
478 dump_instr_cast(struct dxil_dumper *d, struct dxil_instr_cast *cast) in dump_instr_cast() argument
480 const char *str = cast->opcode < DXIL_CAST_INSTR_COUNT ? in dump_instr_cast()
481 cast_opcode_strings[cast->opcode] : "INVALID"; in dump_instr_cast()
483 _mesa_string_buffer_printf(d->buf, "%s.", str); in dump_instr_cast()
484 dump_type_name(d, cast->type); in dump_instr_cast()
485 _mesa_string_buffer_append_char(d->buf, ' '); in dump_instr_cast()
486 dump_value(d, cast->value); in dump_instr_cast()
490 dump_instr_call(struct dxil_dumper *d, struct dxil_instr_call *call) in dump_instr_call() argument
492 assert(call->num_args == call->func->type->function_def.args.num_types); in dump_instr_call()
493 struct dxil_type **func_arg_types = call->func->type->function_def.args.types; in dump_instr_call()
495 _mesa_string_buffer_printf(d->buf, "%s(", call->func->name); in dump_instr_call()
496 for (unsigned i = 0; i < call->num_args; ++i) { in dump_instr_call()
498 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_call()
499 dump_type_name(d, func_arg_types[i]); in dump_instr_call()
500 _mesa_string_buffer_append_char(d->buf, ' '); in dump_instr_call()
501 dump_value(d, call->args[i]); in dump_instr_call()
503 _mesa_string_buffer_append_char(d->buf, ')'); in dump_instr_call()
507 dump_instr_ret(struct dxil_dumper *d, struct dxil_instr_ret *ret) in dump_instr_ret() argument
509 _mesa_string_buffer_append(d->buf, "ret "); in dump_instr_ret()
510 if (ret->value) in dump_instr_ret()
511 dump_value(d, ret->value); in dump_instr_ret()
515 dump_instr_extractval(struct dxil_dumper *d, struct dxil_instr_extractval *extr) in dump_instr_extractval() argument
517 _mesa_string_buffer_append(d->buf, "extractvalue "); in dump_instr_extractval()
518 dump_type_name(d, extr->type); in dump_instr_extractval()
519 dump_value(d, extr->src); in dump_instr_extractval()
520 _mesa_string_buffer_printf(d->buf, ", %d", extr->idx); in dump_instr_extractval()
524 dump_instr_branch(struct dxil_dumper *d, struct dxil_instr_br *br) in dump_instr_branch() argument
526 _mesa_string_buffer_append(d->buf, "branch "); in dump_instr_branch()
527 if (br->cond) in dump_instr_branch()
528 dump_value(d, br->cond); in dump_instr_branch()
530 _mesa_string_buffer_append(d->buf, " (uncond)"); in dump_instr_branch()
531 _mesa_string_buffer_printf(d->buf, " %d %d", br->succ[0], br->succ[1]); in dump_instr_branch()
535 dump_instr_phi(struct dxil_dumper *d, struct dxil_instr_phi *phi) in dump_instr_phi() argument
537 _mesa_string_buffer_append(d->buf, "phi "); in dump_instr_phi()
538 dump_type_name(d, phi->type); in dump_instr_phi()
539 struct dxil_phi_src *src = phi->incoming; in dump_instr_phi()
540 for (unsigned i = 0; i < phi->num_incoming; ++i, ++src) { in dump_instr_phi()
542 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_phi()
543 dump_value(d, src->value); in dump_instr_phi()
544 _mesa_string_buffer_printf(d->buf, "(%d)", src->block); in dump_instr_phi()
549 dump_instr_alloca(struct dxil_dumper *d, struct dxil_instr_alloca *alloca) in dump_instr_alloca() argument
551 _mesa_string_buffer_append(d->buf, "alloca "); in dump_instr_alloca()
552 dump_type_name(d, alloca->alloc_type); in dump_instr_alloca()
553 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_alloca()
554 dump_type_name(d, alloca->size_type); in dump_instr_alloca()
555 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_alloca()
556 dump_value(d, alloca->size); in dump_instr_alloca()
557 unsigned align_mask = (1 << 6 ) - 1; in dump_instr_alloca()
558 unsigned align = alloca->align & align_mask; in dump_instr_alloca()
559 _mesa_string_buffer_printf(d->buf, ", %d", 1 << (align - 1)); in dump_instr_alloca()
563 dump_instr_gep(struct dxil_dumper *d, struct dxil_instr_gep *gep) in dump_instr_gep() argument
565 _mesa_string_buffer_append(d->buf, "getelementptr "); in dump_instr_gep()
566 if (gep->inbounds) in dump_instr_gep()
567 _mesa_string_buffer_append(d->buf, "inbounds "); in dump_instr_gep()
568 dump_type_name(d, gep->source_elem_type); in dump_instr_gep()
569 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_gep()
570 for (unsigned i = 0; i < gep->num_operands; ++i) { in dump_instr_gep()
572 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_gep()
573 dump_value(d, gep->operands[i]); in dump_instr_gep()
578 dump_instr_load(struct dxil_dumper *d, struct dxil_instr_load *load) in dump_instr_load() argument
580 _mesa_string_buffer_append(d->buf, "load "); in dump_instr_load()
581 if (load->is_volatile) in dump_instr_load()
582 _mesa_string_buffer_append(d->buf, " volatile"); in dump_instr_load()
583 dump_type_name(d, load->type); in dump_instr_load()
584 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_load()
585 dump_value(d, load->ptr); in dump_instr_load()
586 _mesa_string_buffer_printf(d->buf, ", %d", load->align); in dump_instr_load()
590 dump_instr_store(struct dxil_dumper *d, struct dxil_instr_store *store) in dump_instr_store() argument
592 _mesa_string_buffer_append(d->buf, "store "); in dump_instr_store()
593 if (store->is_volatile) in dump_instr_store()
594 _mesa_string_buffer_append(d->buf, " volatile"); in dump_instr_store()
595 dump_value(d, store->value); in dump_instr_store()
596 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_store()
597 dump_value(d, store->ptr); in dump_instr_store()
598 _mesa_string_buffer_printf(d->buf, ", %d", store->align); in dump_instr_store()
602 [DXIL_ATOMIC_ORDERING_NOTATOMIC] = "not-atomic",
612 [DXIL_SYNC_SCOPE_SINGLETHREAD] = "single-thread",
613 [DXIL_SYNC_SCOPE_CROSSTHREAD] = "cross-thread",
631 dump_instr_atomicrmw(struct dxil_dumper *d, struct dxil_instr_atomicrmw *rmw) in dump_instr_atomicrmw() argument
633 _mesa_string_buffer_printf(d->buf, "atomicrmw.%s ", rmwop_str[rmw->op]); in dump_instr_atomicrmw()
635 if (rmw->is_volatile) in dump_instr_atomicrmw()
636 _mesa_string_buffer_append(d->buf, " volatile"); in dump_instr_atomicrmw()
637 dump_value(d, rmw->value); in dump_instr_atomicrmw()
638 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_atomicrmw()
639 dump_value(d, rmw->ptr); in dump_instr_atomicrmw()
640 _mesa_string_buffer_printf(d->buf, ", ordering(%s)", rmworder_str[rmw->ordering]); in dump_instr_atomicrmw()
641 _mesa_string_buffer_printf(d->buf, ", sync_scope(%s)", rmwsync_str[rmw->syncscope]); in dump_instr_atomicrmw()
645 dump_instr_print_operands(struct dxil_dumper *d, int num, in dump_instr_print_operands() argument
650 _mesa_string_buffer_append(d->buf, ", "); in dump_instr_print_operands()
651 dump_value(d, val[i]); in dump_instr_print_operands()
656 dump_value(struct dxil_dumper *d, const struct dxil_value *val) in dump_value() argument
658 if (val->id < 10) in dump_value()
659 _mesa_string_buffer_append(d->buf, " "); in dump_value()
660 if (val->id < 100) in dump_value()
661 _mesa_string_buffer_append(d->buf, " "); in dump_value()
662 _mesa_string_buffer_printf(d->buf, "%%%d", val->id); in dump_value()
663 dump_type_name(d, val->type); in dump_value()
667 dump_mdnodes(struct dxil_dumper *d, struct list_head *list) in dump_mdnodes() argument
672 _mesa_string_buffer_append(d->buf, "MD-Nodes:\n"); in dump_mdnodes()
673 dxil_dump_indention_inc(d); in dump_mdnodes()
675 dump_mdnode(d, node); in dump_mdnodes()
677 dxil_dump_indention_dec(d); in dump_mdnodes()
681 dump_mdnode(struct dxil_dumper *d, const struct dxil_mdnode *node) in dump_mdnode() argument
683 dxil_dump_indent(d); in dump_mdnode()
684 switch (node->type) { in dump_mdnode()
686 _mesa_string_buffer_printf(d->buf, "S:%s\n", node->string); in dump_mdnode()
689 _mesa_string_buffer_append(d->buf, "V:"); in dump_mdnode()
690 dump_type_name(d, node->value.type); in dump_mdnode()
691 _mesa_string_buffer_append_char(d->buf, ' '); in dump_mdnode()
692 dump_value(d, node->value.value); in dump_mdnode()
693 _mesa_string_buffer_append_char(d->buf, '\n'); in dump_mdnode()
696 _mesa_string_buffer_append(d->buf, " \\\n"); in dump_mdnode()
697 dxil_dump_indention_inc(d); in dump_mdnode()
698 for (size_t i = 0; i < node->node.num_subnodes; ++i) { in dump_mdnode()
699 if (node->node.subnodes[i]) in dump_mdnode()
700 dump_mdnode(d, node->node.subnodes[i]); in dump_mdnode()
702 dxil_dump_indent(d); in dump_mdnode()
703 _mesa_string_buffer_append(d->buf, "(nullptr)\n"); in dump_mdnode()
706 dxil_dump_indention_dec(d); in dump_mdnode()
712 dump_named_nodes(struct dxil_dumper *d, struct list_head *list) in dump_named_nodes() argument
717 _mesa_string_buffer_append(d->buf, "Named Nodes:\n"); in dump_named_nodes()
718 dxil_dump_indention_inc(d); in dump_named_nodes()
720 dxil_dump_indent(d); in dump_named_nodes()
721 _mesa_string_buffer_printf(d->buf, "%s:\n", node->name); in dump_named_nodes()
722 dxil_dump_indention_inc(d); in dump_named_nodes()
723 for (size_t i = 0; i < node->num_subnodes; ++i) { in dump_named_nodes()
724 if (node->subnodes[i]) in dump_named_nodes()
725 dump_mdnode(d, node->subnodes[i]); in dump_named_nodes()
727 dxil_dump_indent(d); in dump_named_nodes()
728 _mesa_string_buffer_append(d->buf, "(nullptr)\n"); in dump_named_nodes()
731 dxil_dump_indention_dec(d); in dump_named_nodes()
733 dxil_dump_indention_dec(d); in dump_named_nodes()
749 dump_io_signature(buf, m->num_sig_inputs, m->inputs); in dump_io_signatures()
751 dump_io_signature(buf, m->num_sig_outputs, m->outputs); in dump_io_signatures()
757 _mesa_string_buffer_append(buf, " SEMANTIC-NAME Index Mask Reg SysValue Format\n"); in dump_io_signature()
758 _mesa_string_buffer_append(buf, "----------------------------------------------\n"); in dump_io_signature()
760 for (unsigned j = 0; j < io->num_elements; ++j) { in dump_io_signature()
762 mask_to_string(io->elements[j].mask, mask); in dump_io_signature()
763 _mesa_string_buffer_printf(buf, "%-15s %3d %4s %3d %-8s %-7s\n", in dump_io_signature()
764 io->name, io->elements[j].semantic_index, in dump_io_signature()
765 mask, io->elements[j].reg, io->sysvalue, in dump_io_signature()
766 component_type_as_string(io->elements[j].comp_type)); in dump_io_signature()
781 dump_psv_io(buf, m, m->num_sig_inputs, m->psv_inputs); in dump_psv()
783 dump_psv_io(buf, m, m->num_sig_outputs, m->psv_outputs); in dump_psv()
789 …_mesa_string_buffer_append(buf, " SEMANTIC-NAME Rows Cols Kind Comp-Type Interp dynmask+stream Ind… in dump_psv_io()
790 _mesa_string_buffer_append(buf, "----------------------------------------------\n"); in dump_psv_io()
792 _mesa_string_buffer_printf(buf, "%-14s %d+%d %d+%d %4d %-7s %-4d %-9d [", in dump_psv_io()
793 m->sem_string_table->buf + io->semantic_name_offset, in dump_psv_io()
794 (int)io->start_row, (int)io->rows, in dump_psv_io()
795 (int)((io->cols_and_start & 0xf) >> 4), in dump_psv_io()
796 (int)(io->cols_and_start & 0xf), in dump_psv_io()
797 (int)io->semantic_kind, in dump_psv_io()
798 component_type_as_string(io->component_type), in dump_psv_io()
799 (int)io->interpolation_mode, in dump_psv_io()
800 (int)io->dynamic_mask_and_stream); in dump_psv_io()
801 for (int k = 0; k < io->rows; ++k) { in dump_psv_io()
804 _mesa_string_buffer_printf(buf,"%d ", m->sem_index_table.data[io->start_row + k]); in dump_psv_io()