Bug 43706 - [945GM SNA] Font (and sometimes other things) corruption
Summary: [945GM SNA] Font (and sometimes other things) corruption
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Chris Wilson
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-11 01:35 UTC by Paul Neumann
Modified: 2011-12-13 03:59 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
example of misrendered fonts (72.54 KB, image/png)
2011-12-11 01:35 UTC, Paul Neumann
no flags Details
misrendering in chromium (56.49 KB, image/png)
2011-12-11 01:36 UTC, Paul Neumann
no flags Details
i915_error_state of after the hang (21.86 KB, application/x-xz)
2011-12-11 05:06 UTC, Paul Neumann
no flags Details

Description Paul Neumann 2011-12-11 01:35:47 UTC
Created attachment 54314 [details]
example of misrendered fonts

From time to time, there is slight font corruption. However, this is not stricly limited to font rendering but also happens with GUI controls, the web page part of chromium and, for example, the LCD clock panel item in XFCE. This happens with SNA and latest xf86-video-intel from git.
Comment 1 Paul Neumann 2011-12-11 01:36:26 UTC
Created attachment 54315 [details]
misrendering in chromium
Comment 2 Chris Wilson 2011-12-11 01:47:10 UTC
Ho hum. Looks suspiciously like I'm not flushing correctly, can you try reverting 051a18063df075536cb1ac0dc4dfc3c1306ab74e (sna: Implement a VMA cache)?
Comment 3 Chris Wilson 2011-12-11 01:52:05 UTC
Not so easy to reproduce - I was expecting chromium to hit the issue very quickly if it was 051a1806. Can you keep your eye out for any patterns in triggering this?
Comment 4 Paul Neumann 2011-12-11 02:05:36 UTC
Reverting 051a1806 did not help.
Regarding reproducing, triggering the bug is easiest with the xfce terminal and executing something that produces a large amount of text like dmesg a couple of times. For me, the issue in chromium does not happen very often and I have no way of reliably triggering it (it only happend once when writing the bug report). However, once chromium was in the buggy state, scrolling sideways corrupted the web site pretty hard.
Comment 5 Chris Wilson 2011-12-11 02:18:06 UTC
Are you sure it is a recent regression? Do you have a feeling when the regression may have occurred? If you could bisect it, that would speed up fixing it very quickly. :)

Maybe try going back to b424b10e771b1d3d041efdd2b77f576251364744^.
Comment 6 Chris Wilson 2011-12-11 02:36:26 UTC
I just fixed a couple of issues resulting from c295ad8da91e39c8fffa540901097651df5d24b2 (sna: Transfer the whole bo for a replacement XCopyArea) which was causing corrupt rendering in winecfg. It could well be related, so it is also worth testing current master (a02bbd87) as well.
Comment 7 Paul Neumann 2011-12-11 02:42:39 UTC
No, master does not fix it. But it seems b424b10e771b1d3d041efdd2b77f576251364744 is indeed working, as I think this is not a very recent regression. So I will try to bisect this issue.
Comment 8 Paul Neumann 2011-12-11 04:30:49 UTC
Well, the first bad commit is b424b10e771b1d3d041efdd2b77f576251364744. After reverting that and ece7fc8afeb8eefcf0ad1a054f02e7fac8db6327, I do not encounter the bug anymore.
Comment 9 Chris Wilson 2011-12-11 04:48:19 UTC
I went back and rechecked the specs for the pitch restrictions, and it looks like the 16 byte check I added earlier is unnecessary if we can convince the GPU that we are only rendering to a single-stream (i.e. we've completely disabled the depth buffer). So I've undone the earlier patch and tried frobbing the depth write disable earlier during setup in the hope that solves this without breaking again.
Comment 10 Paul Neumann 2011-12-11 05:05:32 UTC
Nope, this doesn't help. Instead it hangs my GPU quite easily when switching tabs in chromium.
Comment 11 Paul Neumann 2011-12-11 05:06:38 UTC
Created attachment 54319 [details]
i915_error_state of after the hang
Comment 12 Chris Wilson 2011-12-11 06:05:42 UTC
I've undone the tweaking of the pitch for 915g and 945g, can you check that it is sufficient. I'll definitely look at this again in the future!

Meanwhile, I am still puzzled as to how come you are using a 1x1 destination surface, as the code is meant to avoid those because it usually costs a lot more to create and render to such surfaces on the GPU than on the CPU.
Comment 13 Chris Wilson 2011-12-11 06:56:01 UTC
The 1x1 destination would appear to be the result of XComposite, one mystery solved.
Comment 14 Chris Wilson 2011-12-13 03:59:59 UTC
I believe this is now fixed.


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.