[Mesa-dev] [PATCH] i965: fold offset into coord for textureOffset(gsampler2DRect)

Chris Forbes chrisf at ijw.co.nz
Wed Dec 18 01:04:47 PST 2013


Erk, ignore the stray 'to 0' in the commit message; editor fail :)

On Wed, Dec 18, 2013 at 10:04 PM, Chris Forbes <chrisf at ijw.co.nz> wrote:
> 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'.
> to 0.
>
> 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 at ijw.co.nz>
> Cc: Lee Salzman <lsalzman at gmail.com>
> Cc: "10.0" <mesa-stable at lists.freedesktop.org>
> ---
>  src/mesa/drivers/dri/i965/brw_lower_unnormalized_offset.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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 df4fe4b..c95d7f3 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;
>     }
> --
> 1.8.5.2
>


More information about the mesa-dev mailing list