diff options
author | Marek Olšák <maraeo@gmail.com> | 2010-12-07 21:45:34 +0100 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2010-12-08 04:39:50 +0100 |
commit | 431b4c0c84424bb80820c3b189aed901fdb605b2 (patch) | |
tree | 1494b57db7c8df55bcec2ca2db20006b0613e60c | |
parent | 2f07a744f127a232943101d5cc7fd533859c2ca9 (diff) |
r300/compiler: don't terminate regalloc if we surpass max temps limit
The same check is already in a later pass (translate_vertex_program).
-rw-r--r-- | src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c index dab593310ee..0152bc90562 100644 --- a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c @@ -791,19 +791,14 @@ static void allocate_temporary_registers(struct radeon_compiler *c, void *user) if (!hwtemps[j]) break; } - if (j >= c->max_temp_regs) { - rc_error(c, "Too many temporaries\n"); - return; + ta[orig].Allocated = 1; + if (last_inst_src_reladdr && + last_inst_src_reladdr->IP > inst->IP) { + ta[orig].HwTemp = orig; } else { - ta[orig].Allocated = 1; - if (last_inst_src_reladdr && - last_inst_src_reladdr->IP > inst->IP) { - ta[orig].HwTemp = orig; - } else { - ta[orig].HwTemp = j; - } - hwtemps[ta[orig].HwTemp] = 1; + ta[orig].HwTemp = j; } + hwtemps[ta[orig].HwTemp] = 1; } inst->U.I.DstReg.Index = ta[orig].HwTemp; |