Bug 26557

Summary: [i845 bisected] Extreme Tux Racer hangs graphics card
Product: Mesa Reporter: Brian Rogers <brian>
Component: Drivers/DRI/i915Assignee: Eric Anholt <eric>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: low CC: idr, moikkis
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
i915 platform: i915 features:
Attachments: dmesg with drm.debug=0x06
i915_error_state produced from Extreme Tux Racer freeze

Description Brian Rogers 2010-02-13 09:12:25 UTC
Created attachment 33277 [details]
dmesg with drm.debug=0x06

Running xorg-edgers PPA on Ubuntu Lucid, this i845 freezes when running Extreme Tux Racer.

00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 01)

All I have to do is start the game and click 'Practice' on the main menu. The level select is supposed to come up next, but instead it freezes right there.

Kernel is 2.6.33-rc8. I tried merging the drm-linus and drm-next branches of drm-2.6, but doing so did not help.

Console output of etracer:

Extreme TuxRacer SVN Development --  http://www.extremetuxracer.com
(c) 2007 The ETRacer team
(c) 2004-2005 The PPRacer team
(c) 1999-2001 Jasmin F. Patry<jfpatry@sunspirestudios.com>
ETRacer comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
See http://www.gnu.org/copyleft/gpl.html for details.

%%% etracer warning: Attempt to bind to Texture unloaded texture: `b-herring_run_icon'

../../intel/intel_bufmgr_gem.c:901: Error setting to CPU domain 4: Input/output error
../../intel/intel_bufmgr_gem.c:901: Error setting to CPU domain 4: Input/output error
Comment 1 Brian Rogers 2010-02-13 09:13:45 UTC
Created attachment 33278 [details]
i915_error_state produced from Extreme Tux Racer freeze
Comment 2 Eric Anholt 2010-02-16 15:36:27 UTC
If you could bisect when it started hanging, that would help
Comment 3 Brian Rogers 2010-02-22 01:25:39 UTC
OK, I have started bisecting.

So far, the problem is in mesa somewhere between 7.6.0 and 1e414df8. I still have a ways to go...
Comment 4 Brian Rogers 2010-02-23 05:12:30 UTC
Bisect done.

b4a6169412819cc3a027c6a118f0537911145a30 is the first bad commit

commit b4a6169412819cc3a027c6a118f0537911145a30
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Tue Dec 8 23:24:58 2009 -0800

    intel: Make RGB textures use XRGB8888
Comment 5 Brian Rogers 2010-02-23 06:36:42 UTC
I can also confirm that reverting that commit on Ubuntu Lucid's 7.7.0-based Mesa gets Extreme Tux Racer working again.
Comment 6 René Gabriëls 2010-04-20 17:25:05 UTC
(In reply to comment #5)
> I can also confirm that reverting that commit on Ubuntu Lucid's 7.7.0-based
> Mesa gets Extreme Tux Racer working again.

The X server (and sometimes the kernel) crashes right after I start the game.  Also happens with Doomsday and Warzone2100.  Reverting this patch doesn't make a difference in my situation.  I will try to find a working mesa version (if any) and try to bisect from there.
Comment 7 Eric Anholt 2010-06-04 13:44:03 UTC
I don't have my 845 here, so I pushed the obvious fix without testing it.  Hope it works out.  If you could drop a note here that it helps you, I'll get it merged to stable.

commit f0ff214bee64a705d3ef6610e9dc25bc1a46a460
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jun 4 13:40:48 2010 -0700

    i915: Don't use XRGB8888 on 830 and 845.
    The support for XRGB8888 appeared in the 855 and 865, and this format
    is reserved on 830/845.  This should fix a regression from
    b4a6169412819cc3a027c6a118f0537911145a30 that caused hangs in etracer
    on 845s.
    Bug #26557.
Comment 8 Brian Rogers 2010-06-09 00:46:56 UTC
I just got a chance to test the affected machine.

Yeah, it fixes it. etracer works now both with xorg-edgers on Lucid, and with my own backport of your patch to Mesa 7.7.1.
Comment 9 Brian Rogers 2010-06-20 20:40:03 UTC
I see this fix is included now in mesa 7.8.2. What about the 7.7 branch?

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.