Bug 89295 - [sna suse] weird glyphs in thunderbird
Summary: [sna suse] weird glyphs in thunderbird
Status: RESOLVED WORKSFORME
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: Other All
: high major
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-24 08:36 UTC by Jiri Slaby
Modified: 2015-04-07 08:46 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
snapshot of the behaviour (19.30 KB, image/png)
2015-02-24 08:36 UTC, Jiri Slaby
no flags Details
xorg log (48.53 KB, text/plain)
2015-02-24 08:36 UTC, Jiri Slaby
no flags Details

Description Jiri Slaby 2015-02-24 08:36:14 UTC
Created attachment 113784 [details]
snapshot of the behaviour

Having 2.99.917-145-g127aae5a72a6, I am seeing weird glyphs while scrolling message text.
Comment 1 Jiri Slaby 2015-02-24 08:36:33 UTC
Created attachment 113785 [details]
xorg log
Comment 2 Chris Wilson 2015-02-24 08:46:07 UTC
Please tell me this is recent and bisectable... (Sorry to impose that upon you, but it's a worrying glitch.)
Comment 3 Jiri Slaby 2015-02-24 08:50:32 UTC
(In reply to Chris Wilson from comment #2)
> Please tell me this is recent and bisectable... (Sorry to impose that upon
> you, but it's a worrying glitch.)

Recent: definitely. It should be something after 0c2ff5532c79029a8.
Reproducible (thus bisectable): not much :(
Comment 4 Chris Wilson 2015-02-24 08:53:29 UTC
Let's rule out the clip boxes change first:

diff --git a/src/sna/sna.h b/src/sna/sna.h
index 04875b8..89081db 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -1202,6 +1202,7 @@ __find_clip_box_for_y(const BoxRec *begin, const BoxRec *end, int16_t y);
 inline static const BoxRec *
 find_clip_box_for_y(const BoxRec *begin, const BoxRec *end, int16_t y)
 {
+#if 0
        /* Special case for incremental trapezoid clipping */
        if (begin == end)
                return end;
@@ -1211,6 +1212,7 @@ find_clip_box_for_y(const BoxRec *begin, const BoxRec *end, int16_t y)
                return begin;
        if (y > end[-1].y2)
                return end;
+#endif
 
        /* Otherwise bisect to find the first box crossing y */
        return __find_clip_box_for_y(begin, end, y);
Comment 5 Chris Wilson 2015-02-24 09:02:50 UTC
The only other suspicious changes (outside of present fixes) is: 

commit 0b7a6666f82b4fa07f9c9d9a9c1819efc363b31b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jan 5 14:00:44 2015 +0000

    sna: Partially unroll conversion of rectangles to boxes for fills

commit f7f68d50797f0a5e6a3c7f931c827845464acd3f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 9 10:32:48 2015 +0000

    sna: Convert pixel values into ARGB values for render operations

commit 733a88bda7a654473ffc5961d08ac246ca12a28b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Feb 9 10:24:26 2015 +0000

    sna: Tidy composite operator reduction for CompositeRectangles


But clip is my guess.
Comment 6 Chris Wilson 2015-02-25 13:02:02 UTC
Any information you have (reproduction, patterns, patches tried and failed) is much appreciated - thanks in advance!
Comment 7 Jiri Slaby 2015-03-01 14:10:32 UTC
(In reply to Chris Wilson from comment #6)
> Any information you have (reproduction, patterns, patches tried and failed)
> is much appreciated - thanks in advance!

It seems disable of clipping helped, but let me test it for some more time. Then I will remove the patch and see how to reproduce etc.
Comment 8 Chris Wilson 2015-03-01 16:29:35 UTC
Next on the list, I added a couple of asserts to the code you #if 0ed out:

commit f6ba71ac194a19c80aa64f4769f76a47ebb7bd16
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 1 15:47:50 2015 +0000

    sna: Unrecurse clip box search
    
    Unwind the trivial tail recursion from the clip box bisection and add a
    couple of assertions on the inlined fast-paths.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=89295
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 9 Joakim Tjernlund 2015-03-02 14:46:31 UTC
(In reply to Chris Wilson from comment #8)
> Next on the list, I added a couple of asserts to the code you #if 0ed out:
> 
> commit f6ba71ac194a19c80aa64f4769f76a47ebb7bd16
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Sun Mar 1 15:47:50 2015 +0000
> 
>     sna: Unrecurse clip box search
>     
>     Unwind the trivial tail recursion from the clip box bisection and add a
>     couple of assertions on the inlined fast-paths.
>     
>     References: https://bugs.freedesktop.org/show_bug.cgi?id=89295
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Was this intentional(< vs >=)?
- if (y > end[-1].y2)
+ }
+ if (y >= end[-1].y2) {
Comment 10 Chris Wilson 2015-03-02 14:57:56 UTC
(In reply to Joakim Tjernlund from comment #9)
> (In reply to Chris Wilson from comment #8)
> > Next on the list, I added a couple of asserts to the code you #if 0ed out:
> > 
> > commit f6ba71ac194a19c80aa64f4769f76a47ebb7bd16
> > Author: Chris Wilson <chris@chris-wilson.co.uk>
> > Date:   Sun Mar 1 15:47:50 2015 +0000
> > 
> >     sna: Unrecurse clip box search
> >     
> >     Unwind the trivial tail recursion from the clip box bisection and add a
> >     couple of assertions on the inlined fast-paths.
> >     
> >     References: https://bugs.freedesktop.org/show_bug.cgi?id=89295
> >     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> 
> Was this intentional(< vs >=)?
> - if (y > end[-1].y2)
> + }
> + if (y >= end[-1].y2) {

Yes. > vs >=.
Comment 11 Joakim Tjernlund 2015-03-02 16:18:27 UTC
(In reply to Chris Wilson from comment #10)
> (In reply to Joakim Tjernlund from comment #9)
> > (In reply to Chris Wilson from comment #8)
> > > Next on the list, I added a couple of asserts to the code you #if 0ed out:
> > > 
> > > commit f6ba71ac194a19c80aa64f4769f76a47ebb7bd16
> > > Author: Chris Wilson <chris@chris-wilson.co.uk>
> > > Date:   Sun Mar 1 15:47:50 2015 +0000
> > > 
> > >     sna: Unrecurse clip box search
> > >     
> > >     Unwind the trivial tail recursion from the clip box bisection and add a
> > >     couple of assertions on the inlined fast-paths.
> > >     
> > >     References: https://bugs.freedesktop.org/show_bug.cgi?id=89295
> > >     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > 
> > Was this intentional(< vs >=)?
> > - if (y > end[-1].y2)
> > + }
> > + if (y >= end[-1].y2) {
> 
> Yes. > vs >=.

OK, just checking as it looked a bit odd from the commit msg.
Comment 12 Jiri Slaby 2015-03-05 11:08:28 UTC
So I am running 2.99.917-174-g3e390ec41105 now, but haven't seen the artifact yet.
Comment 13 Chris Wilson 2015-03-05 11:13:09 UTC
Ok, bumping it down to needinfo. If nothing goes wrong in a few more days, I'll make a release.
Comment 14 Chris Wilson 2015-04-07 08:46:32 UTC
Hmm, lets never speak of this bug again. :)


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.