[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-xorg-devel
Subject:    Re: [PATCH xserver RFC v2] glamor: fix wrong offset on composite rectangles
From:       Olivier Fourdan <ofourdan () redhat ! com>
Date:       2016-03-30 6:48:08
Message-ID: 378990884.39025934.1459320488396.JavaMail.zimbra () redhat ! com
[Download RAW message or body]

Hi all,

Anyone to give some feedback on this patch?

It fixes bug #94568 for me (there is a simple reproducer there) and I have not \
noticed any ill effect in my (limited) testing here.

I tried to see if rendercheck would detect such an issue but apprently it doesn't, \
even with a patch in render check to map its window farther from (0,0).

But the good point is rendercheck doesn't seem to report any regression with this \
patch either (but again, I am not sure I can trust rendercheck on that).

Cheers,
Olivier

----- Original Message -----
> When using PictOpSrc, the destination is wrongly shifted back to (0, 0).
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94568
> 
> Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
> ---
> v2: Cleaup-up, move relevant code where it's actually used;
> Note: I am not entirely confident with this patch, it fixes the issue
> for me but I am definitely not certain it's correct...
> 
> glamor/glamor_compositerects.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/glamor/glamor_compositerects.c b/glamor/glamor_compositerects.c
> index 885a6c0..199e627 100644
> --- a/glamor/glamor_compositerects.c
> +++ b/glamor/glamor_compositerects.c
> @@ -107,7 +107,6 @@ glamor_composite_rectangles(CARD8 op,
> struct glamor_pixmap_private *priv;
> pixman_region16_t region;
> pixman_box16_t *boxes;
> -    int dst_x, dst_y;
> int num_boxes;
> PicturePtr source = NULL;
> Bool need_free_region = FALSE;
> @@ -225,17 +224,18 @@ glamor_composite_rectangles(CARD8 op,
> RegionExtents(&region)->x2, RegionExtents(&region)->y2,
> RegionNumRects(&region));
> 
> -    glamor_get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y);
> -    pixman_region_translate(&region, dst_x, dst_y);
> -
> -    DEBUGF("%s: pixmap +(%d, %d) extents (%d, %d),(%d, %d)\n",
> -           __FUNCTION__, dst_x, dst_y,
> -           RegionExtents(&region)->x1, RegionExtents(&region)->y1,
> -           RegionExtents(&region)->x2, RegionExtents(&region)->y2);
> -
> boxes = pixman_region_rectangles(&region, &num_boxes);
> if (op == PictOpSrc || op == PictOpClear) {
> CARD32 pixel;
> +        int dst_x, dst_y;
> +
> +        glamor_get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y);
> +        pixman_region_translate(&region, dst_x, dst_y);
> +
> +        DEBUGF("%s: pixmap +(%d, %d) extents (%d, %d),(%d, %d)\n",
> +               __FUNCTION__, dst_x, dst_y,
> +               RegionExtents(&region)->x1, RegionExtents(&region)->y1,
> +               RegionExtents(&region)->x2, RegionExtents(&region)->y2);
> 
> if (op == PictOpClear)
> pixel = 0;
> --
> 2.5.0
> 
> _______________________________________________
> xorg-devel@lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic