diff options
author | Chris Forbes <[email protected]> | 2013-12-18 21:27:59 +1300 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2014-01-09 10:09:01 +1300 |
commit | 9e99735f301ebf85f8d0bfdce2bad441a5aac7f8 (patch) | |
tree | 5beaddbd1761cf23134f71e8b7a473a9f75381bd /src/mesa/drivers | |
parent | 31ec2f83385c4f13c9c8831a90db982883bbedcd (diff) |
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Cc: Lee Salzman <[email protected]>
Cc: "10.0" <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp b/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp index df4fe4be463..c95d7f3cac7 100644 --- a/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp +++ b/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp @@ -55,7 +55,7 @@ brw_lower_unnormalized_offset_visitor::visit_leave(ir_texture *ir) if (!ir->offset) return visit_continue; - if (ir->op == ir_tg4) { + if (ir->op == ir_tg4 || ir->op == ir_tex) { if (ir->sampler->type->sampler_dimensionality != GLSL_SAMPLER_DIM_RECT) return visit_continue; } |