1 |
From c24489b0ef74a34aae440658021c7c44936a9e6f Mon Sep 17 00:00:00 2001 |
2 |
From: Chris Forbes <chrisf@ijw.co.nz> |
3 |
Date: Wed, 18 Dec 2013 21:27:34 +1300 |
4 |
Subject: [PATCH] i965: fold offset into coord for |
5 |
textureOffset(gsampler2DRect) |
6 |
|
7 |
The hardware is broken with nonzero texel offsets and unnormalized |
8 |
coordinates; instead of doing correct offsetting, we get garbage. |
9 |
|
10 |
This just extends the existing workaround for ir_txf and |
11 |
ir_tg4+gsampler2DRect to also consider ir_tex+gsampler2DRect. |
12 |
|
13 |
Fixes broken rendering in 'tesseract' when 'mesa_texrectoffset_bug' is |
14 |
not enabled; also fixes the new piglit test |
15 |
'tests/spec/glsl-1.30/execution/fs-textureOffset-Rect'. |
16 |
|
17 |
Has been broken ~forever; suggesting including this in only 10.0 because |
18 |
the lowering pass doesn't exist in 9.2 or earlier so would require quite |
19 |
a different patch. |
20 |
|
21 |
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> |
22 |
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> |
23 |
Cc: Lee Salzman <lsalzman@gmail.com> |
24 |
Cc: "10.0" <mesa-stable@lists.freedesktop.org> |
25 |
(cherry picked from commit 9e99735f301ebf85f8d0bfdce2bad441a5aac7f8) |
26 |
--- |
27 |
src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp | 2 +- |
28 |
1 file changed, 1 insertion(+), 1 deletion(-) |
29 |
|
30 |
diff --git a/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp b/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp |
31 |
index df4fe4b..c95d7f3 100644 |
32 |
--- a/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp |
33 |
+++ b/src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp |
34 |
@@ -55,7 +55,7 @@ brw_lower_unnormalized_offset_visitor::visit_leave(ir_texture *ir) |
35 |
if (!ir->offset) |
36 |
return visit_continue; |
37 |
|
38 |
- if (ir->op == ir_tg4) { |
39 |
+ if (ir->op == ir_tg4 || ir->op == ir_tex) { |
40 |
if (ir->sampler->type->sampler_dimensionality != GLSL_SAMPLER_DIM_RECT) |
41 |
return visit_continue; |
42 |
} |
43 |
-- |
44 |
1.8.4.5 |
45 |
|