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 <[email protected]> > --- > 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(®ion)->x2, RegionExtents(®ion)->y2, > RegionNumRects(®ion)); > > - glamor_get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y); > - pixman_region_translate(®ion, dst_x, dst_y); > - > - DEBUGF("%s: pixmap +(%d, %d) extents (%d, %d),(%d, %d)\n", > - __FUNCTION__, dst_x, dst_y, > - RegionExtents(®ion)->x1, RegionExtents(®ion)->y1, > - RegionExtents(®ion)->x2, RegionExtents(®ion)->y2); > - > boxes = pixman_region_rectangles(®ion, &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(®ion, dst_x, dst_y); > + > + DEBUGF("%s: pixmap +(%d, %d) extents (%d, %d),(%d, %d)\n", > + __FUNCTION__, dst_x, dst_y, > + RegionExtents(®ion)->x1, RegionExtents(®ion)->y1, > + RegionExtents(®ion)->x2, RegionExtents(®ion)->y2); > > if (op == PictOpClear) > pixel = 0; > -- > 2.5.0 > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: https://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
