Bug 51472 - [sna] Artifacts while loading image in firefox
Summary: [sna] Artifacts while loading image in firefox
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg 6.7.0
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Daniel Vetter
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-27 04:14 UTC by Christoph Reiter
Modified: 2017-07-24 23:01 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:


Attachments
xorg log (172.79 KB, application/x-xz)
2012-06-27 13:10 UTC, Christoph Reiter
no flags Details

Description Christoph Reiter 2012-06-27 04:14:27 UTC
Hey,

 - Open Firefox (this doesn't work in chrome)
 - Go to http://f.666kb.com/i/c50tucyed4mnm2md0.jpg
 - Reload by pressing ctrl+f5 (so there is no caching)
 - See lots of white lines while loading the non progressive jpeg
 - Taking a screenshot doesn't work, since it redraws right before it.
   It looks like this: http://f.666kb.com/i/c50ubvv98bxpb8ipg.png
   but with many more lines

Latest git (db797998); uxa works; 3.2 kernel; metacity compositing and non compositing; 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09);
Comment 1 Chris Wilson 2012-06-27 04:22:24 UTC
You are by any chance using a nightly build of mozilla, or simply a build not using system cairo?
Comment 2 Christoph Reiter 2012-06-27 04:31:48 UTC
This is iceweasel 10.0.5 from debian testing, so I guess not.
Comment 3 Chris Wilson 2012-06-27 04:36:49 UTC
Ok, and which kernel?
Comment 4 Christoph Reiter 2012-06-27 05:50:52 UTC
3.2.21 and 3.4.1
Comment 5 Chris Wilson 2012-06-27 11:15:34 UTC
3.4 shouldn't have any flushing/coherence issues. *touch wood*

And finally how reliable are your reproduction steps? I've tried a number of machines with a mixture of generations and window managers reloading that image and not once seen the skipped lines.

Could you recompile with --enable-debug and reproduce? That will enable all the assertions and sanity checks, which may catch the error. If it does persist can you try with --enable-debug=full and attach the Xorg.log?
Comment 6 Christoph Reiter 2012-06-27 13:10:14 UTC
Created attachment 63529 [details]
xorg log

Here you go.

The session included: logging in, starting iceweasel, clicking the link, reloading 5 or so times, with lots of artifacts every time, kill X.
Comment 7 Chris Wilson 2012-06-28 01:51:39 UTC
The sequence looks like:

1. PutImage to a temporary pixmap (using a linear LLC bo).
2. Copy temporary pixmap to permanent pixmap (linear CPU bo -> X-tiled GPU bo)
3. Tile permanent pixmap to backbuffer (X-tiled GPU bo -> X-tiled GPU bo).

During the log capture did you see the gaps? Can you describe how they manifested?

From the earlier screenshot, I was expecting that we would be updating the output after a few PutImages (i.e. we'd update the output before the image was complete) and so we would be losing the damage at some point (forgetting to copy some of the most recent partial PutImage).
Comment 8 Chris Wilson 2012-06-28 01:53:22 UTC
If you install cairo-1.12, how does that alter things?
Comment 9 Christoph Reiter 2012-06-28 05:30:10 UTC
I have cairo 1.12.2 installed.

I did see gaps on all 5 reload attempts.

Not sure how to describe it. The size varies depending on the loading speed... If I'd have to guess, I would assume it misses every second update beginning with the second one.
Comment 10 Chris Wilson 2012-06-28 05:34:01 UTC
Do you mind also checking that

commit 87dd6408a5c29e4808283df78a981de0a3c0a79c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 28 10:53:59 2012 +0100

    sna: Correct the reversal of the periodic flushing semantics

is not responsible? (i.e. test with the current HEAD of xf86-video-intel.git)
Comment 11 Chris Wilson 2012-06-28 07:13:59 UTC
Ok, I've found an example. So far resisting all attempts to identify which path actually goes adrift.
Comment 12 Chris Wilson 2012-06-28 09:06:25 UTC
commit 7c3eb1fda9e567a300a8138acdac9ec11e010b11
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jun 28 17:04:26 2012 +0100

    sna: Correct inverted logic for checking xrgb drawables
    
    Reported-by: Christoph Reiter <reiter.christoph@gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51472
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 13 Christoph Reiter 2012-06-28 09:48:18 UTC
Works now, thanks!

I finally found something fixable :)


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.