i965: fold offset into coord for textureOffset(gsampler2DRect)
authorChris Forbes <chrisf@ijw.co.nz>
Wed, 18 Dec 2013 08:27:59 +0000 (21:27 +1300)
committerChris Forbes <chrisf@ijw.co.nz>
Wed, 8 Jan 2014 21:09:01 +0000 (10:09 +1300)
commit9e99735f301ebf85f8d0bfdce2bad441a5aac7f8
tree5beaddbd1761cf23134f71e8b7a473a9f75381bd
parent31ec2f83385c4f13c9c8831a90db982883bbedcd
i965: fold offset into coord for textureOffset(gsampler2DRect)

The hardware is broken with nonzero texel offsets and unnormalized
coordinates; instead of doing correct offsetting, we get garbage.

This just extends the existing workaround for ir_txf and
ir_tg4+gsampler2DRect to also consider ir_tex+gsampler2DRect.

Fixes broken rendering in 'tesseract' when 'mesa_texrectoffset_bug' is
not enabled; also fixes the new piglit test
'tests/spec/glsl-1.30/execution/fs-textureOffset-Rect'.

Has been broken ~forever; suggesting including this in only 10.0 because
the lowering pass doesn't exist in 9.2 or earlier so would require quite
a different patch.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: Lee Salzman <lsalzman@gmail.com>
Cc: "10.0" <mesa-stable@lists.freedesktop.org>
src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp