Bug 28151

Summary: font corruption and incorrectly drawn rectangular areas
Product: xorg Reporter: Marcus Better <marcus>
Component: Driver/intelAssignee: Carl Worth <cworth>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: chris, macieksitarz, mail.hamburg
Version: 7.5 (2009.10)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
i915 platform: i915 features:
Description Flags
screenshot of Chromium browser
desktop with partially drawn windows
screenshot of glyph corruption in Eclipse
Cuts in "l" and "x" on Toshiba R500, kernel 2.6.35-rc6 none

Description Marcus Better 2010-05-17 22:03:59 UTC
I got corruption of some font glyphs in certain applications after a resume from suspend. Also when switching between windows, some rectangular areas on the screen are incorrectly drawn. Some glyphs are consistently exchanged for other shapes, currently withing GTK applications (Eclipse, Chrome) on my KDE desktop. Context menus in GTK applications seem to hang around on screen after they are dismissed, until I force a redraw of that window.

System: Thinkpad T61
Kernel: (x86_64), KMS
OS: Debian squeeze/sid
xserver-xorg-core 2:1.7.7-1
xserver-xorg 1:7.5+6
xserver-xorg-video-intel 2:2.11.0-1

I have not had this problem before, and have been running this X.org version for several weeks (but have been updated the stable kernels).

I had an external VGA monitor plugged in, and yesterday I pulled the VGA cable and suspeneded. The artefacts started after resume. The only difference from my regular procedure is that I usually use xrandr to disable the VGA monitor nicely.
Comment 1 Marcus Better 2010-05-17 22:05:27 UTC
Created attachment 35716 [details]
screenshot of Chromium browser

Note the lower case "l" in "hello world" is corrupted in the search field.
Comment 2 Marcus Better 2010-05-17 22:07:37 UTC
Created attachment 35717 [details]
desktop with partially drawn windows

The background windows are partially drawn. (Note that kscreenshot seems to think I have the VGA monitor still plugged, so the virtual desktop size is too big.)
Comment 3 Marcus Better 2010-05-17 22:09:03 UTC
Created attachment 35720 [details]
screenshot of glyph corruption in Eclipse
Comment 4 Marcus Better 2010-05-17 22:09:49 UTC
The graphics controller is "Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)".
Comment 5 Chris Wilson 2010-05-31 15:59:59 UTC
Hmm, the versions you have afaik are free from tiling bugs upon suspend & resume. Evidently we are not entirely bug free yet. :(

Can I ask you verify your steps to reproduce this bug? In particular, what is the timing of each step. Disconnect whilst suspending, disconnect a minute before, etc? And how often do you see the corruption?

You definitely exhibit corruption in the glyph cache, but I cannot explain the partial redraw.
Comment 6 Marcus Better 2010-06-01 12:54:44 UTC
(In reply to comment #5)
> Can I ask you verify your steps to reproduce this bug?

Sure, I just reproduced it on the first attempt. The steps are:

1. Work with VGA monitor connected (xrandr --output VGA1 --right-of LVDS1)
2. Pull the VGA cable.
3. After less than a minute, pull the power cable and close the lid. (Laptop usually suspend now, but it didn't, so I opened it again and pressed Fn-F4 which worked.)
4. Go home, open lid (without connecting external display).
5. kwin had turned off compositing for unknown reason (maybe because of low battery). No corruption seen at this point.
6. I re-enabled compositing with Alt-Shift-F12, and the corruption came back.

As before, only Chromium, Eclipse and the plasma desktop were affected.
Comment 7 Marcus Better 2010-06-01 12:58:46 UTC
> 2. Pull the VGA cable.

This seems to be crucial. I follow a similar procedure after every workday, except that I disable the display with xrandr before pulling the cable. The corruption appeared on exactly the two occasions when I pulled the cable first.
Comment 8 Chris Wilson 2010-07-24 04:57:34 UTC
2.6.35-rc6 contains a couple of vital fixes for memory corruption caused by suspend+i915. Can you please try those and see if this problem still persists. Thanks.
Comment 9 Thomas Orgis 2010-08-01 23:57:58 UTC
I want to chime in here... for testing the fix (hopefully) for bug #20560 , I installed kernel 2.6.35-rc6 on my Toshiba Portégé R500 with 945GMA chip set, x86-64 install.

I had noticed font corruption with intel driver 2.12.0 before (see https://bugs.freedesktop.org/attachment.cgi?id=37173), but that became less after upgrading the kernel, apparently. I do suspend to RAM a lot, actually mostly only rebooting to change kernels.

Anyhow, I just observed my kind of font corruption again, with the current setup: Some glyphs get horizontal white lines (or rather, transparent lines), in this case it hit the bold "l" and "x". Not sure about reproduction procedure, but I did not connect a VGA monitor for a long time. I have seen it in browsers and a GTK mail client, probably anything that uses scalable font rendering (did not observe this in nedit, using fixed fonts).

My distortion looks somewhat less severe than the others here, but perhaps it's the same issue...
Comment 10 Thomas Orgis 2010-08-01 23:59:15 UTC
Created attachment 37514 [details]
Cuts in "l" and "x" on Toshiba R500, kernel 2.6.35-rc6
Comment 11 Marcus Better 2010-09-05 00:01:39 UTC
(In reply to comment #8)
> 2.6.35-rc6 contains a couple of vital fixes for memory corruption caused by
> suspend+i915. Can you please try those and see if this problem still persists.

Actually I haven't been able to reproduce lately with 2.6.34 from Debian (linux-image-2.6.34-1-amd64 2.6.34-1~experimental.2). Will try a bit more.

I had some problems with iwl3945 on 2.6.35, so I haven't had a chance to try it much yet.
Comment 12 Chris Wilson 2010-09-06 10:30:17 UTC
The likely fix here is:

commit 944001201ca0196bcdb088129e5866a9f379d08c
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Jul 20 13:15:31 2010 +1000

    drm/i915: enable low power render writes on GEN3 hardware.
    A lot of 945GMs have had stability issues for a long time, this manifested a
    one such report is at:
    along with numerous distro bugzillas.
    This only took a week of digging and hair ripping to figure out.
    Tracked down and tested on a 945GM Lenovo T60,
    previously running
    x11perf -copypixwin500
    x11perf -copywinpix500
    repeatedly would cause the GPU to wedge within 4 or 5 tries, with random bus
    After this patch no hangs were observed.

in conjunction with memory corruption fixes.
Comment 13 Petr Janecek 2010-11-22 04:55:34 UTC
I still see the font corruption (horizontal transparent lines) after resume from hibernate.

chipset: 945GM
kernel: 2.6.36
os: debian sid/experimental 32bit
xserver: 1.9.2
xf86-video-intel: 2.13.901
Comment 14 Maxim 2010-12-27 07:55:15 UTC
I have such bug too.

/etc/X11/xorg.conf in Section "Device" added:
Option "DRI" "true"
Option "FallbackDebug" "true"
Option "DebugFlushBatches" "true"
Option "DebugFlushCaches" "true"

In /var/log/Xorg.0.log sometimes catch this information
[    31.398] UXA fallback at uxa_check_composite: from picts 0x9e74598/(nil) to pict 0x9e74670
[    31.398] (II) intel(0): fallback: (II) Unsupported picture format 0x1011000
[    31.398] (II) intel(0): fallback: (II) Unsupported picture format 0x1011000
[    31.398] (II) intel(0): fallback: (II) Unsupported picture format 0x1011000
[    31.398] (II) intel(0): fallback: (II) Unsupported picture format 0x1011000
[    31.399] Composite fallback at uxa_composite:
  op   Src, 
  src  0x9e420d8:m fmt A8       (17x16), 
  mask None, 
  dst  0x9e747c0:m fmt A8       (17x16), 
  screen normal
[    31.399] UXA fallback at uxa_check_composite: from picts 0x9e74768/(nil) to pict 0x9e74950
[    31.399] Composite fallback at uxa_composite:
  op   Src, 
  src  0x9e420d8:m fmt A8       (16x12), 
  mask None, 
  dst  0x9e749b8:m fmt A8       (16x12), 
  screen normal

lspci -vvv
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device 817a
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at efe00000 (32-bit, non-prefetchable) [size=512K]
	Region 1: I/O ports at b800 [size=8]
	Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
	Region 3: Memory at efe80000 (32-bit, non-prefetchable) [size=256K]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: <access denied>
	Kernel driver in use: i915
	Kernel modules: i915

My configuration

-- chipset: 945G
-- system architecture: 32-bit
-- xf86-video-intel: 2.13.902+git20101223
-- xserver: 1.9.0
-- libdrm: 2.4.23
-- kernel: 2.6.35-22-generic-pae
-- Linux distribution: Ubuntu 10.10
Comment 15 Juri 2011-05-03 05:00:19 UTC
Have also a similar problem for already nearly a year. That has been also reported on Archlinux bug tracker and should be marked upstream: 

My current hardware/software:
Thinkpad x41t with
VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)

xorg-server 1.10.1
xorg-utils 7.6
kernel 2.6.38

As mentioned on Archlinux tracker, the problem of broken fonts occures randomly and is temporary fixable by increasing/decreasing font size.

Please tell, if more information is needed.
Comment 16 Chris Wilson 2012-05-10 04:34:14 UTC
The incorrect rendering of rectangular regions sounds reminiscent of

commit 0e2fbb6a1c1ad6b0971d07a91a790b0b3236dad3
Merge: 64ccc66 84d7a82
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 15 12:43:47 2012 +0000

    uxa: Merge 'remove complicated second level caching'
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47345
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

However the font corruption still remains a misery of UXA.
Comment 17 Chris Wilson 2012-06-16 04:40:06 UTC
I'm going to mark this as resolved, believing the rectangular corruption is fixed and tracking the font corruption in other bugs. Thanks for the report.

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.