--- src/gallium/drivers/r600/r600_asm.c | 7 ++++++- src/gallium/drivers/r600/r600_asm.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c index 3632aa5..eacdb0c 100644 --- a/src/gallium/drivers/r600/r600_asm.c +++ b/src/gallium/drivers/r600/r600_asm.c @@ -812,6 +812,8 @@ static int merge_inst_groups(struct r600_bytecode *bc, struct r600_bytecode_alu /* looks like everything worked out right, apply the changes */ + bc->nig --; + /* undo adding previus literals */ bc->cf_last->ndw -= align(prev_nliteral, 2); @@ -1140,6 +1142,9 @@ int r600_bytecode_add_alu_type(struct r600_bytecode *bc, if (nalu->dst.sel >= bc->ngpr) { bc->ngpr = nalu->dst.sel + 1; } + if (nalu->last) { + bc->nig ++; + } LIST_ADDTAIL(&nalu->list, &bc->cf_last->alu); /* each alu use 2 dwords */ bc->cf_last->ndw += 2; @@ -2105,7 +2110,7 @@ void r600_bytecode_dump(struct r600_bytecode *bc) chip = '6'; break; } - fprintf(stderr, "bytecode %d dw -- %d gprs ---------------------\n", bc->ndw, bc->ngpr); + fprintf(stderr, "bytecode %d dw -- %d gprs -- %d ig-------------\n", bc->ndw, bc->ngpr, bc->nig); fprintf(stderr, " %c\n", chip); LIST_FOR_EACH_ENTRY(cf, &bc->cf, list) { diff --git a/src/gallium/drivers/r600/r600_asm.h b/src/gallium/drivers/r600/r600_asm.h index 03cd238..1638ca0 100644 --- a/src/gallium/drivers/r600/r600_asm.h +++ b/src/gallium/drivers/r600/r600_asm.h @@ -192,6 +192,7 @@ struct r600_bytecode { struct r600_bytecode_cf *cf_last; unsigned ndw; unsigned ncf; + unsigned nig; // Number of Instructions Group unsigned ngpr; unsigned nstack; unsigned nresource; -- 1.8.1.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev