Summary: | [sna] Text input fields in firefox appear corrupted (bisected) | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Da Fox <da.fox.mail> | ||||
Component: | Driver/intel | Assignee: | Chris Wilson <chris> | ||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | normal | ||||||
Priority: | medium | CC: | ben, chris, daniel, jbarnes | ||||
Version: | git | ||||||
Hardware: | Other | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Da Fox
2012-03-17 09:35:05 UTC
There's only one condition left from that original patch, so can you confirm if diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c index 3a93450..e22eb37 100644 --- a/src/sna/sna_trapezoids.c +++ b/src/sna/sna_trapezoids.c @@ -4127,7 +4127,7 @@ trapezoid_span_inplace(CARD8 op, PicturePtr src, PicturePt switch (op) { case PictOpAdd: - if (priv->clear && priv->clear_color == 0) + if (priv->clear && priv->clear_color == 0 && 0) op = PictOpSrc; if ((color >> 24) == 0) return true; restores normal behaviour? I'll be the one in the corner weeping. (In reply to comment #1) > There's only one condition left from that original patch, so can you confirm if > > diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c > index 3a93450..e22eb37 100644 > --- a/src/sna/sna_trapezoids.c > +++ b/src/sna/sna_trapezoids.c > @@ -4127,7 +4127,7 @@ trapezoid_span_inplace(CARD8 op, PicturePtr src, > PicturePt > > switch (op) { > case PictOpAdd: > - if (priv->clear && priv->clear_color == 0) > + if (priv->clear && priv->clear_color == 0 && 0) > op = PictOpSrc; > if ((color >> 24) == 0) > return true; > > restores normal behaviour? I'll be the one in the corner weeping. With this patch textfields appear normal again. Thanks, know why? Sob. I think this is the right explanation: diff --git a/src/sna/sna_trapezoids.c b/src/sna/sna_trapezoids.c index 3a93450..eb9ec2d 100644 --- a/src/sna/sna_trapezoids.c +++ b/src/sna/sna_trapezoids.c @@ -4226,7 +4226,7 @@ trapezoid_span_inplace(CARD8 op, PicturePtr src, PicturePt DBG(("%s: move-to-cpu\n", __FUNCTION__)); region.data = NULL; if (!sna_drawable_move_region_to_cpu(dst->pDrawable, ®ion, - op == PictOpSrc ? MOVE_WRITE : MOVE + MOVE_WRITE | MOVE_READ)) return true; get_drawable_deltas(dst->pDrawable, pixmap, &dst_x, &dst_y); Created attachment 58625 [details] [review] Clear outside the ADD for the pending clear Better still. commit 97cd0c7da51024400e8900e46f51620a5f7ad402 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sat Mar 17 23:57:46 2012 +0000 sna/traps: Upon reducing an ADD to a SRC, we need to apply the pending clear Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47444 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.