From: Zack Rusin Date: Thu, 13 Dec 2007 15:32:36 +0000 (-0500) Subject: Actually allocate the output registers. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=da89104c576b5b7a0c581a018a8b1c2d770e13c2;p=mesa.git Actually allocate the output registers. In tgsi the output's will (hopefully) consecutive so this check (besides not being currently implemented) is not necessary. --- diff --git a/src/mesa/pipe/i965simple/brw_vs_emit.c b/src/mesa/pipe/i965simple/brw_vs_emit.c index 59459d42009..530e17a736f 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<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];