mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
r600g: remove bytecode dumping
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
This commit is contained in:
parent
4bf0ebdd4f
commit
3832059b10
2 changed files with 0 additions and 240 deletions
|
|
@ -2075,245 +2075,6 @@ void r600_bytecode_disasm(struct r600_bytecode *bc)
|
|||
fprintf(stderr, "--------------------------------------\n");
|
||||
}
|
||||
|
||||
void r600_bytecode_dump(struct r600_bytecode *bc)
|
||||
{
|
||||
struct r600_bytecode_cf *cf = NULL;
|
||||
struct r600_bytecode_alu *alu = NULL;
|
||||
struct r600_bytecode_vtx *vtx = NULL;
|
||||
struct r600_bytecode_tex *tex = NULL;
|
||||
|
||||
unsigned i, id;
|
||||
uint32_t literal[4];
|
||||
unsigned nliteral;
|
||||
char chip = '6';
|
||||
|
||||
switch (bc->chip_class) {
|
||||
case R700:
|
||||
chip = '7';
|
||||
break;
|
||||
case EVERGREEN:
|
||||
chip = 'E';
|
||||
break;
|
||||
case CAYMAN:
|
||||
chip = 'C';
|
||||
break;
|
||||
case R600:
|
||||
default:
|
||||
chip = '6';
|
||||
break;
|
||||
}
|
||||
fprintf(stderr, "bytecode %d dw -- %d gprs ---------------------\n", bc->ndw, bc->ngpr);
|
||||
fprintf(stderr, " %c\n", chip);
|
||||
|
||||
LIST_FOR_EACH_ENTRY(cf, &bc->cf, list) {
|
||||
id = cf->id;
|
||||
if (cf->op == CF_NATIVE) {
|
||||
fprintf(stderr, "%04d %08X CF NATIVE\n", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "%04d %08X CF NATIVE\n", id + 1, bc->bytecode[id + 1]);
|
||||
} else {
|
||||
const struct cf_op_info *cfop = r600_isa_cf(cf->op);
|
||||
if (cfop->flags & CF_ALU) {
|
||||
if (cf->eg_alu_extended) {
|
||||
fprintf(stderr, "%04d %08X ALU_EXT0 ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "KCACHE_BANK2:%X ", cf->kcache[2].bank);
|
||||
fprintf(stderr, "KCACHE_BANK3:%X ", cf->kcache[3].bank);
|
||||
fprintf(stderr, "KCACHE_MODE2:%X\n", cf->kcache[2].mode);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X ALU_EXT1 ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "KCACHE_MODE3:%X ", cf->kcache[3].mode);
|
||||
fprintf(stderr, "KCACHE_ADDR2:%X ", cf->kcache[2].addr);
|
||||
fprintf(stderr, "KCACHE_ADDR3:%X\n", cf->kcache[3].addr);
|
||||
id++;
|
||||
}
|
||||
|
||||
fprintf(stderr, "%04d %08X ALU ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "ADDR:%d ", cf->addr);
|
||||
fprintf(stderr, "KCACHE_MODE0:%X ", cf->kcache[0].mode);
|
||||
fprintf(stderr, "KCACHE_BANK0:%X ", cf->kcache[0].bank);
|
||||
fprintf(stderr, "KCACHE_BANK1:%X\n", cf->kcache[1].bank);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X ALU ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "INST: %s ", cfop->name);
|
||||
fprintf(stderr, "KCACHE_MODE1:%X ", cf->kcache[1].mode);
|
||||
fprintf(stderr, "KCACHE_ADDR0:%X ", cf->kcache[0].addr);
|
||||
fprintf(stderr, "KCACHE_ADDR1:%X ", cf->kcache[1].addr);
|
||||
fprintf(stderr, "COUNT:%d\n", cf->ndw / 2);
|
||||
} else if (cfop->flags & CF_FETCH) {
|
||||
fprintf(stderr, "%04d %08X TEX/VTX ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "ADDR:%d\n", cf->addr);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X TEX/VTX ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "INST: %s ", cfop->name);
|
||||
fprintf(stderr, "COUNT:%d\n", cf->ndw / 4);
|
||||
} else if (cfop->flags & CF_EXP) {
|
||||
fprintf(stderr, "%04d %08X %s ", id, bc->bytecode[id],
|
||||
cfop->name);
|
||||
fprintf(stderr, "GPR:%X ", cf->output.gpr);
|
||||
fprintf(stderr, "ELEM_SIZE:%X ", cf->output.elem_size);
|
||||
fprintf(stderr, "ARRAY_BASE:%X ", cf->output.array_base);
|
||||
fprintf(stderr, "TYPE:%X\n", cf->output.type);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X %s ", id, bc->bytecode[id],
|
||||
cfop->name);
|
||||
fprintf(stderr, "SWIZ_X:%X ", cf->output.swizzle_x);
|
||||
fprintf(stderr, "SWIZ_Y:%X ", cf->output.swizzle_y);
|
||||
fprintf(stderr, "SWIZ_Z:%X ", cf->output.swizzle_z);
|
||||
fprintf(stderr, "SWIZ_W:%X ", cf->output.swizzle_w);
|
||||
fprintf(stderr, "BARRIER:%X ", cf->output.barrier);
|
||||
fprintf(stderr, "INST: %s ", r600_isa_cf(cf->op)->name);
|
||||
fprintf(stderr, "BURST_COUNT:%d ", cf->output.burst_count);
|
||||
fprintf(stderr, "EOP:%X\n", cf->output.end_of_program);
|
||||
} else if (cfop->flags & CF_STRM) {
|
||||
fprintf(stderr, "%04d %08X EXPORT %s ", id, bc->bytecode[id],
|
||||
cfop->name);
|
||||
fprintf(stderr, "GPR:%X ", cf->output.gpr);
|
||||
fprintf(stderr, "ELEM_SIZE:%i ", cf->output.elem_size);
|
||||
fprintf(stderr, "ARRAY_BASE:%i ", cf->output.array_base);
|
||||
fprintf(stderr, "TYPE:%X\n", cf->output.type);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X EXPORT %s ", id, bc->bytecode[id],
|
||||
cfop->name);
|
||||
fprintf(stderr, "ARRAY_SIZE:%i ", cf->output.array_size);
|
||||
fprintf(stderr, "COMP_MASK:%X ", cf->output.comp_mask);
|
||||
fprintf(stderr, "BARRIER:%X ", cf->output.barrier);
|
||||
fprintf(stderr, "INST: %s ", cfop->name);
|
||||
fprintf(stderr, "BURST_COUNT:%d ", cf->output.burst_count);
|
||||
fprintf(stderr, "EOP:%X\n", cf->output.end_of_program);
|
||||
|
||||
} else {
|
||||
fprintf(stderr, "%04d %08X CF ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "ADDR:%d\n", cf->cf_addr);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X CF ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "INST: %s ", cfop->name);
|
||||
fprintf(stderr, "COND:%X ", cf->cond);
|
||||
fprintf(stderr, "POP_COUNT:%X\n", cf->pop_count);
|
||||
}
|
||||
}
|
||||
|
||||
id = cf->addr;
|
||||
nliteral = 0;
|
||||
LIST_FOR_EACH_ENTRY(alu, &cf->alu, list) {
|
||||
r600_bytecode_alu_nliterals(bc, alu, literal, &nliteral);
|
||||
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, " SRC0(SEL:%d ", alu->src[0].sel);
|
||||
fprintf(stderr, "REL:%d ", alu->src[0].rel);
|
||||
fprintf(stderr, "CHAN:%d ", alu->src[0].chan);
|
||||
fprintf(stderr, "NEG:%d) ", alu->src[0].neg);
|
||||
fprintf(stderr, "SRC1(SEL:%d ", alu->src[1].sel);
|
||||
fprintf(stderr, "REL:%d ", alu->src[1].rel);
|
||||
fprintf(stderr, "CHAN:%d ", alu->src[1].chan);
|
||||
fprintf(stderr, "NEG:%d ", alu->src[1].neg);
|
||||
fprintf(stderr, "IM:%d) ", alu->index_mode);
|
||||
fprintf(stderr, "PRED_SEL:%d ", alu->pred_sel);
|
||||
fprintf(stderr, "LAST:%d)\n", alu->last);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X %c ", id, bc->bytecode[id], alu->last ? '*' : ' ');
|
||||
fprintf(stderr, "INST: %s ", r600_isa_alu(alu->op)->name);
|
||||
fprintf(stderr, "DST(SEL:%d ", alu->dst.sel);
|
||||
fprintf(stderr, "CHAN:%d ", alu->dst.chan);
|
||||
fprintf(stderr, "REL:%d ", alu->dst.rel);
|
||||
fprintf(stderr, "CLAMP:%d) ", alu->dst.clamp);
|
||||
fprintf(stderr, "BANK_SWIZZLE:%d ", alu->bank_swizzle);
|
||||
if (alu->is_op3) {
|
||||
fprintf(stderr, "SRC2(SEL:%d ", alu->src[2].sel);
|
||||
fprintf(stderr, "REL:%d ", alu->src[2].rel);
|
||||
fprintf(stderr, "CHAN:%d ", alu->src[2].chan);
|
||||
fprintf(stderr, "NEG:%d)\n", alu->src[2].neg);
|
||||
} else {
|
||||
fprintf(stderr, "SRC0_ABS:%d ", alu->src[0].abs);
|
||||
fprintf(stderr, "SRC1_ABS:%d ", alu->src[1].abs);
|
||||
fprintf(stderr, "WRITE_MASK:%d ", alu->dst.write);
|
||||
fprintf(stderr, "OMOD:%d ", alu->omod);
|
||||
fprintf(stderr, "EXECUTE_MASK:%d ", alu->execute_mask);
|
||||
fprintf(stderr, "UPDATE_PRED:%d\n", alu->update_pred);
|
||||
}
|
||||
|
||||
id++;
|
||||
if (alu->last) {
|
||||
for (i = 0; i < nliteral; i++, id++) {
|
||||
float *f = (float*)(bc->bytecode + id);
|
||||
fprintf(stderr, "%04d %08X\t%f (%d)\n", id, bc->bytecode[id], *f,
|
||||
*(bc->bytecode + id));
|
||||
}
|
||||
id += nliteral & 1;
|
||||
nliteral = 0;
|
||||
}
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY(tex, &cf->tex, list) {
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "INST: %s ", r600_isa_fetch(tex->op)->name);
|
||||
fprintf(stderr, "RESOURCE_ID:%d ", tex->resource_id);
|
||||
fprintf(stderr, "SRC(GPR:%d ", tex->src_gpr);
|
||||
fprintf(stderr, "REL:%d)\n", tex->src_rel);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "DST(GPR:%d ", tex->dst_gpr);
|
||||
fprintf(stderr, "REL:%d ", tex->dst_rel);
|
||||
fprintf(stderr, "SEL_X:%d ", tex->dst_sel_x);
|
||||
fprintf(stderr, "SEL_Y:%d ", tex->dst_sel_y);
|
||||
fprintf(stderr, "SEL_Z:%d ", tex->dst_sel_z);
|
||||
fprintf(stderr, "SEL_W:%d) ", tex->dst_sel_w);
|
||||
fprintf(stderr, "LOD_BIAS:%d ", tex->lod_bias);
|
||||
fprintf(stderr, "COORD_TYPE_X:%d ", tex->coord_type_x);
|
||||
fprintf(stderr, "COORD_TYPE_Y:%d ", tex->coord_type_y);
|
||||
fprintf(stderr, "COORD_TYPE_Z:%d ", tex->coord_type_z);
|
||||
fprintf(stderr, "COORD_TYPE_W:%d\n", tex->coord_type_w);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "OFFSET_X:%d ", tex->offset_x);
|
||||
fprintf(stderr, "OFFSET_Y:%d ", tex->offset_y);
|
||||
fprintf(stderr, "OFFSET_Z:%d ", tex->offset_z);
|
||||
fprintf(stderr, "SAMPLER_ID:%d ", tex->sampler_id);
|
||||
fprintf(stderr, "SRC(SEL_X:%d ", tex->src_sel_x);
|
||||
fprintf(stderr, "SEL_Y:%d ", tex->src_sel_y);
|
||||
fprintf(stderr, "SEL_Z:%d ", tex->src_sel_z);
|
||||
fprintf(stderr, "SEL_W:%d)\n", tex->src_sel_w);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X \n", id, bc->bytecode[id]);
|
||||
id++;
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY(vtx, &cf->vtx, list) {
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "INST: %s ", r600_isa_fetch(vtx->op)->name);
|
||||
fprintf(stderr, "FETCH_TYPE:%d ", vtx->fetch_type);
|
||||
fprintf(stderr, "BUFFER_ID:%d\n", vtx->buffer_id);
|
||||
id++;
|
||||
/* This assumes that no semantic fetches exist */
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "SRC(GPR:%d ", vtx->src_gpr);
|
||||
fprintf(stderr, "SEL_X:%d) ", vtx->src_sel_x);
|
||||
if (bc->chip_class < CAYMAN)
|
||||
fprintf(stderr, "MEGA_FETCH_COUNT:%d ", vtx->mega_fetch_count);
|
||||
else
|
||||
fprintf(stderr, "SEL_Y:%d) ", 0);
|
||||
fprintf(stderr, "DST(GPR:%d ", vtx->dst_gpr);
|
||||
fprintf(stderr, "SEL_X:%d ", vtx->dst_sel_x);
|
||||
fprintf(stderr, "SEL_Y:%d ", vtx->dst_sel_y);
|
||||
fprintf(stderr, "SEL_Z:%d ", vtx->dst_sel_z);
|
||||
fprintf(stderr, "SEL_W:%d) ", vtx->dst_sel_w);
|
||||
fprintf(stderr, "USE_CONST_FIELDS:%d ", vtx->use_const_fields);
|
||||
fprintf(stderr, "FORMAT(DATA:%d ", vtx->data_format);
|
||||
fprintf(stderr, "NUM:%d ", vtx->num_format_all);
|
||||
fprintf(stderr, "COMP:%d ", vtx->format_comp_all);
|
||||
fprintf(stderr, "MODE:%d)\n", vtx->srf_mode_all);
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X ", id, bc->bytecode[id]);
|
||||
fprintf(stderr, "ENDIAN:%d ", vtx->endian);
|
||||
fprintf(stderr, "OFFSET:%d\n", vtx->offset);
|
||||
/* XXX */
|
||||
id++;
|
||||
fprintf(stderr, "%04d %08X \n", id, bc->bytecode[id]);
|
||||
id++;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr, "--------------------------------------\n");
|
||||
}
|
||||
|
||||
void r600_vertex_data_type(enum pipe_format pformat,
|
||||
unsigned *format,
|
||||
unsigned *num_format, unsigned *format_comp, unsigned *endian)
|
||||
|
|
|
|||
|
|
@ -234,7 +234,6 @@ int r600_bytecode_add_alu_type(struct r600_bytecode *bc,
|
|||
void r600_bytecode_special_constants(uint32_t value,
|
||||
unsigned *sel, unsigned *neg);
|
||||
void r600_bytecode_disasm(struct r600_bytecode *bc);
|
||||
void r600_bytecode_dump(struct r600_bytecode *bc);
|
||||
void r600_bytecode_alu_read(struct r600_bytecode *bc,
|
||||
struct r600_bytecode_alu *alu, uint32_t word0, uint32_t word1);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue