diff options
author | Zack Rusin <zack@tungstengraphics.com> | 2007-12-13 10:32:36 -0500 |
---|---|---|
committer | Zack Rusin <zack@tungstengraphics.com> | 2007-12-13 10:33:12 -0500 |
commit | da89104c576b5b7a0c581a018a8b1c2d770e13c2 (patch) | |
tree | 26679ba8bf0e8193727a219435792f636dc0f9ca | |
parent | 6f111e9c81a0c28f057092836a3b7fc6100cdb6d (diff) |
Actually allocate the output registers.
In tgsi the output's will (hopefully) consecutive so this
check (besides not being currently implemented) is not
necessary.
-rw-r--r-- | src/mesa/pipe/i965simple/brw_vs_emit.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/src/mesa/pipe/i965simple/brw_vs_emit.c b/src/mesa/pipe/i965simple/brw_vs_emit.c index 59459d4200..530e17a736 100644 --- a/src/mesa/pipe/i965simple/brw_vs_emit.c +++ b/src/mesa/pipe/i965simple/brw_vs_emit.c @@ -103,28 +103,26 @@ static void brw_vs_alloc_regs( struct brw_vs_compile *c, c->first_output = reg; mrf = 4; for (i = 0; i < c->vp->program.num_outputs; i++) { - if (c->prog_data.outputs_written & (1<<i)) { - c->nr_outputs++; + c->nr_outputs++; #if 0 - if (i == VERT_RESULT_HPOS) { - c->regs[TGSI_FILE_OUTPUT][i] = brw_vec8_grf(reg, 0); - reg++; - } - else if (i == VERT_RESULT_PSIZ) { - c->regs[TGSI_FILE_OUTPUT][i] = brw_vec8_grf(reg, 0); - reg++; - mrf++; /* just a placeholder? XXX fix later stages & remove this */ - } - else { - c->regs[TGSI_FILE_OUTPUT][i] = brw_message_reg(mrf); - mrf++; - } -#else - /* for now stuff everything in grf */ + if (i == VERT_RESULT_HPOS) { c->regs[TGSI_FILE_OUTPUT][i] = brw_vec8_grf(reg, 0); reg++; -#endif } + else if (i == VERT_RESULT_PSIZ) { + c->regs[TGSI_FILE_OUTPUT][i] = brw_vec8_grf(reg, 0); + reg++; + mrf++; /* just a placeholder? XXX fix later stages & remove this */ + } + else { + c->regs[TGSI_FILE_OUTPUT][i] = brw_message_reg(mrf); + mrf++; + } +#else + /* for now stuff everything in grf */ + c->regs[TGSI_FILE_OUTPUT][i] = brw_vec8_grf(reg, 0); + reg++; +#endif } /* Allocate program temporaries: @@ -627,11 +625,9 @@ static struct brw_reg get_reg( struct brw_vs_compile *c, case TGSI_FILE_TEMPORARY: case TGSI_FILE_INPUT: case TGSI_FILE_OUTPUT: + case TGSI_FILE_CONSTANT: assert(c->regs[file][index].nr != 0); return c->regs[file][index]; - case TGSI_FILE_CONSTANT: - assert(c->regs[TGSI_FILE_CONSTANT][index].nr != 0); - return c->regs[TGSI_FILE_CONSTANT][index]; case TGSI_FILE_ADDRESS: assert(index == 0); return c->regs[file][index]; |