On 06/05/2012 10:59 AM, Eric Anholt wrote: > On Mon, 4 Jun 2012 14:15:10 -0700, Kenneth Graunke <kenn...@whitecape.org> > wrote: >> Commit f41ecade7b458c02d504158b522acb2231585040 fixed texelFetchOffset() >> on Ivybridge, but didn't update the Ironlake/Sandybridge code. >> >> +15 piglits on Sandybridge. >> >> NOTE: This and f41ecade7b458 are both candidates for stable branches. >> >> Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> >> --- >> src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 45 >> +++++++++++++++++++------- >> 1 file changed, 33 insertions(+), 12 deletions(-) >> >> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp >> b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp >> index 275a1f4..8d124a0 100644 >> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp >> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp >> @@ -884,20 +884,41 @@ fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg >> dst, fs_reg coordinate, >> const int vector_elements = >> ir->coordinate ? ir->coordinate->type->vector_elements : 0; >> >> - if (ir->offset) { >> - /* The offsets set up by the ir_texture visitor are in the >> - * m1 header, so we can't go headerless. >> + if (ir->offset != NULL && ir->op == ir_txf) { >> + /* It appears that the ld instruction used for txf does its >> + * address bounds check before adding in the offset. To work >> + * around this, just add the integer offset to the integer texel >> + * coordinate, and don't put the offset in the header. >> */ >> - header_present = true; >> - mlen++; >> - base_mrf--; >> - } >> + int offsets[3]; >> + ir_constant *offset = ir->offset->as_constant(); >> + offsets[0] = offset->value.i[0]; >> + offsets[1] = offset->value.i[1]; >> + offsets[2] = offset->value.i[2]; > > No need for this temporary array (unlike in the fs where it was shared > with a non-offset path). > > Other than that, > > Reviewed-by: Eric Anholt <e...@anholt.net>
Eheh...right. Fixed that, thanks :) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev