Hi curro, Am 28.05.2016 um 04:06 schrieb Francisco Jerez: > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index 50552cb..660a8db 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -3127,18 +3127,18 @@ fs_visitor::remove_duplicate_mrf_writes() > } > > /* Clear out any MRF move records whose sources got overwritten. */ > - if (inst->dst.file == VGRF) { > - for (unsigned int i = 0; i < ARRAY_SIZE(last_mrf_move); i++) { > - if (last_mrf_move[i] && > - last_mrf_move[i]->src[0].nr == inst->dst.nr) { > - last_mrf_move[i] = NULL; > - } > - } > + for (unsigned int i = 0; i < ARRAY_SIZE(last_mrf_move); i++) { maybe just unsigned? --Michael > + if (last_mrf_move[i] && > + regions_overlap(inst->dst, inst->regs_written * REG_SIZE, > + last_mrf_move[i]->src[0], > + last_mrf_move[i]->regs_read(0) * REG_SIZE)) { > + last_mrf_move[i] = NULL; > + } > } > > if (inst->opcode == BRW_OPCODE_MOV && > inst->dst.file == MRF && > - inst->src[0].file == VGRF && > + inst->src[0].file != ARF && > !inst->is_partial_write()) { > last_mrf_move[inst->dst.nr] = inst; > }
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev