r600g: add support for streams to the assembler.
This just adds support to the assembler dumper and allows stream instructions to be generated. Also fix up the stream debugging to add stream info. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
90ac5fb6bb
commit
d503bbbf30
|
@ -115,6 +115,7 @@ int eg_bytecode_cf_build(struct r600_bytecode *bc, struct r600_bytecode_cf *cf)
|
|||
S_SQ_CF_WORD1_BARRIER(1) |
|
||||
S_SQ_CF_WORD1_COND(cf->cond) |
|
||||
S_SQ_CF_WORD1_POP_COUNT(cf->pop_count) |
|
||||
S_SQ_CF_WORD1_COUNT(cf->count) |
|
||||
S_SQ_CF_WORD1_END_OF_PROGRAM(cf->end_of_program);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2029,6 +2029,8 @@ void r600_bytecode_disasm(struct r600_bytecode *bc)
|
|||
fprintf(stderr, "CND:%X ", cf->cond);
|
||||
if (cf->pop_count)
|
||||
fprintf(stderr, "POP:%X ", cf->pop_count);
|
||||
if (cf->count && (cfop->flags & CF_EMIT))
|
||||
fprintf(stderr, "STREAM%d ", cf->count);
|
||||
if (cf->end_of_program)
|
||||
fprintf(stderr, "EOP ");
|
||||
fprintf(stderr, "\n");
|
||||
|
|
|
@ -149,6 +149,7 @@ struct r600_bytecode_cf {
|
|||
unsigned id;
|
||||
unsigned cond;
|
||||
unsigned pop_count;
|
||||
unsigned count;
|
||||
unsigned cf_addr; /* control flow addr */
|
||||
struct r600_bytecode_kcache kcache[4];
|
||||
unsigned r6xx_uses_waterfall;
|
||||
|
|
|
@ -93,8 +93,10 @@ static void r600_dump_streamout(struct pipe_stream_output_info *so)
|
|||
for (i = 0; i < so->num_outputs; i++) {
|
||||
unsigned mask = ((1 << so->output[i].num_components) - 1) <<
|
||||
so->output[i].start_component;
|
||||
fprintf(stderr, " %i: MEM_STREAM0_BUF%i[%i..%i] <- OUT[%i].%s%s%s%s%s\n",
|
||||
i, so->output[i].output_buffer,
|
||||
fprintf(stderr, " %i: MEM_STREAM%d_BUF%i[%i..%i] <- OUT[%i].%s%s%s%s%s\n",
|
||||
i,
|
||||
so->output[i].stream,
|
||||
so->output[i].output_buffer,
|
||||
so->output[i].dst_offset, so->output[i].dst_offset + so->output[i].num_components - 1,
|
||||
so->output[i].register_index,
|
||||
mask & 1 ? "x" : "",
|
||||
|
|
|
@ -182,6 +182,9 @@ void bc_dump::dump(cf_node& n) {
|
|||
|
||||
if (n.bc.pop_count)
|
||||
s << " POP:" << n.bc.pop_count;
|
||||
|
||||
if (n.bc.count && (n.bc.op_ptr->flags & CF_EMIT))
|
||||
s << " STREAM" << n.bc.count;
|
||||
}
|
||||
|
||||
if (!n.bc.barrier)
|
||||
|
|
Loading…
Reference in New Issue