Bug 25354 - [bisected] Blender crashes on startup on Radeon 7500 (and 9000-9200)
[bisected] Blender crashes on startup on Radeon 7500 (and 9000-9200)
Status: RESOLVED FIXED
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/R100
git
x86 (IA32) Linux (All)
: medium normal
Assigned To: Default DRI bug account
:
: 25721 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-11-29 19:55 UTC by Geir Ove Myhr
Modified: 2009-12-19 08:21 UTC (History)
2 users (show)

See Also:


Attachments
Xorg.0.log (68.53 KB, text/plain)
2009-11-29 19:59 UTC, Geir Ove Myhr
Details
lspci -vvnn (9.72 KB, text/plain)
2009-11-29 19:59 UTC, Geir Ove Myhr
Details
glxinfo.txt (4.93 KB, text/plain)
2009-11-29 20:00 UTC, Geir Ove Myhr
Details
possible fix for r2xx (3.90 KB, patch)
2009-12-01 13:27 UTC, Alex Deucher
Details | Splinter Review
possible fix for r1xx (3.30 KB, patch)
2009-12-03 08:55 UTC, Alex Deucher
Details | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Geir Ove Myhr 2009-11-29 19:55:41 UTC
Reporting on behalf of ubuntu user mistr, based on comments on Launchpad bug:
https://bugs.launchpad.net/bugs/446632

[Summary]
Blender crashes in GPU_state_init() on startup on a computer with Radeon Mobility 7500. The same is reported on Radeon Mobility 9000 (M9) and Radeon 9200 by other users. The crash is on line 1298 in recent blender SVN, which contains the call: 
glMatrixMode(GL_TEXTURE);

[How to reproduce]
Start blender. Crash reported on official 32bit releases of 2.48a, 2.49, 2.49a, Ubuntu version (2.49a), 2.50 alpha0 and SVN 24195.

A[ffected mesa versions]
Crashes with mesa 7.6.0 which is currently in Ubuntu Karmic, and also with 7.7.0~git20091125+mesa-7-7-branch.7fac8ce7-0ubuntu0tormod from the ubuntu xorg-edgers repository. Downgrading to the git snapshot 7.6.0~git20090817.7c422387 that Ubuntu carried until 7.6.0 was released stops the crashes. mistr has said he is willing to git-bisect between 7.6.0~git20090817.7c422387 and 7.6.0, but he has not done it before and needs to figure out the details for how to do it in practice.

[Chipset]
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500] [1002:4c57]
	Subsystem: Compaq Computer Corporation Device [0e11:00b7]

[Other system information]
Architecture: i386
DistroRelease: Ubuntu 9.10
Lsusb:
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: Compaq Evo N610c (DD502A#AK8)
Package: mesa (not installed)
PccardctlIdent:
 Socket 0:
   no product info available
 Socket 1:
   no product info available
PccardctlStatus:
 Socket 0:
   3.3V 32-bit PC Card
 Socket 1:
   no card
ProcCmdLine: root=UUID=394fbc0f-c812-4c3b-b10a-445391ec9917 ro quiet splash
ProcEnviron:
 SHELL=/bin/bash
 LANG=de_DE.UTF-8
ProcVersionSignature: Ubuntu 2.6.31-15.50-generic
RelatedPackageVersions:
 xserver-xorg 1:7.4+3ubuntu7
 libgl1-mesa-glx 7.7.0~git20091128+mesa-7-7-branch.e5159996-0ubuntu0tormod
 libdrm2 2.4.15+git20091125.6f66de98-0ubuntu0tormod~karmic
 xserver-xorg-video-intel 2:2.9.0+git20091125.917f9bb2-0ubuntu0tormod~karmic
 xserver-xorg-video-ati 1:6.12.99+git20091127.a8dbf7c2-0ubuntu0tormod~karmic
Uname: Linux 2.6.31-15-generic i686
UserGroups: adm admin cdrom dialout dip lpadmin plugdev sambashare
XsessionErrors:
 (gnome-settings-daemon:2250): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed
 (gnome-settings-daemon:2250): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed
 (nautilus:2283): Eel-CRITICAL **: eel_preferences_get_boolean: assertion `preferences_is_initialized ()' failed
 (polkit-gnome-authentication-agent-1:2314): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
dmi.bios.date: 05/24/2003
dmi.bios.vendor: Compaq
dmi.bios.version: 68P4F v2.49 F.14
dmi.board.name: 07F4
dmi.board.vendor: Compaq
dmi.board.version: KBC Version .
dmi.chassis.asset.tag: CNU33406WF
dmi.chassis.type: 10
dmi.chassis.vendor: Compaq
dmi.modalias: dmi:bvnCompaq:bvr68P4Fv2.49F.14:bd05/24/2003:svnCompaq:pnEvoN610c(DD502A#AK8):pvr:rvnCompaq:rn07F4:rvrKBCVersion.:cvnCompaq:ct10:cvr:
dmi.product.name: Evo N610c (DD502A#AK8)
dmi.sys.vendor: Compaq
fglrx: Not loaded
system:
 distro: Ubuntu
 architecture: i686kernel: 2.6.31-15-generic
Comment 1 Geir Ove Myhr 2009-11-29 19:59:17 UTC
Created attachment 31568 [details]
Xorg.0.log
Comment 2 Geir Ove Myhr 2009-11-29 19:59:46 UTC
Created attachment 31569 [details]
lspci -vvnn
Comment 3 Geir Ove Myhr 2009-11-29 20:00:13 UTC
Created attachment 31570 [details]
glxinfo.txt
Comment 4 Geir Ove Myhr 2009-11-29 20:04:40 UTC
Here is a backtrace obtained by Sami Pelkonen on T41 laptop with ATI Radeon Mobility 9000 (M9) Lf (AGP). Compiz disabled and glxgears also works.
Compiled Blender SVN version (24195) with debugging and it produces following backtrace in gdb:
Program received signal SIGSEGV, Segmentation fault.
0x00dfff8d in ?? () from /lib/ld-linux.so.2
(gdb) bt
#0 0x00dfff8d in ?? () from /lib/ld-linux.so.2
#1 0x00e04326 in ?? () from /lib/ld-linux.so.2
#2 0x00e09fc0 in ?? () from /lib/ld-linux.so.2
#3 0x08713e75 in GPU_state_init () at source/blender/gpu/intern/gpu_draw.c:1298
#4 0x083e150a in wm_window_add_ghostwindow (wm=0xa0f01a8, title=0x93fd0c7 "Blender",
    win=0xa0f0278) at source/blender/windowmanager/intern/wm_window.c:332
#5 0x083e15df in wm_window_add_ghostwindows (wm=0xa0f01a8)
    at source/blender/windowmanager/intern/wm_window.c:371
#6 0x083e096e in wm_check (C=0x9dfbb78) at source/blender/windowmanager/intern/wm.c:218
#7 0x083df566 in WM_read_homefile (C=0x9dfbb78, op=0x0)
    at source/blender/windowmanager/intern/wm_files.c:325
#8 0x083ea58f in WM_init (C=0x9dfbb78) at source/blender/windowmanager/intern/wm_init_exit.c:130
#9 0x083ddd7b in main (argc=1, argv=0xbffff4e4) at source/creator/creator.c:498

gpu_draw.c:1298 line contains following call:
glMatrixMode(GL_TEXTURE);
Comment 5 Geir Ove Myhr 2009-11-29 20:13:57 UTC
(In reply to comment #4)
> gpu_draw.c:1298 line contains following call:
> glMatrixMode(GL_TEXTURE);

The current SVN version of the file gpu_draw.c is available at
https://svn.blender.org/svnroot/bf-blender/trunk/blender/source/blender/gpu/intern/gpu_draw.c
Comment 6 Geir Ove Myhr 2009-11-30 05:17:20 UTC
mistr's call trace looks a little different from Sami's, but at least they both crash in GPU_state_init():

Program received signal SIGSEGV, Segmentation fault.
#0  0x001fcf8d in ?? () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x00201326 in ?? () from /lib/ld-linux.so.2
No symbol table info available.
#2  0x00206fc0 in ?? () from /lib/ld-linux.so.2
No symbol table info available.
#3  0x086c3fd7 in GPU_state_init ()
No symbol table info available.
#4  0x081ace76 in BIF_init ()
No symbol table info available.
#5  0x081a7fee in main ()
No symbol table info available.
eax            0x0	0
ecx            0x22222222	572662306
edx            0x80ead77	135179639
ebx            0x20fff4	2162676
esp            0xbfffed18	0xbfffed18
ebp            0xbfffedc4	0xbfffedc4
esi            0xc0f69510	-1057581808
edi            0x0	0
eip            0x1fcf8d	0x1fcf8d
eflags         0x10246	[ PF ZF IF RF ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51
0x1fcf8d:	mov    (%ecx),%eax
0x1fcf8f:	test   %eax,%eax
0x1fcf91:	je     0x1fd5ff
0x1fcf97:	lea    -0x1c(%ebp),%ecx
0x1fcf9a:	mov    -0x64(%ebp),%edx
0x1fcf9d:	mov    %ecx,-0x5c(%ebp)
0x1fcfa0:	lea    -0x10(%ebp),%ecx
0x1fcfa3:	mov    0x8(%ebp),%edi
0x1fcfa6:	mov    %esi,-0x54(%ebp)
0x1fcfa9:	mov    -0x60(%ebp),%esi
0x1fcfac:	mov    %ecx,-0x58(%ebp)
0x1fcfaf:	jmp    0x1fcfc7
0x1fcfb1:	lea    0x0(%esi,%eiz,1),%esi
0x1fcfb8:	add    $0x4,%edi
0x1fcfbb:	xor    %edx,%edx
0x1fcfbd:	mov    (%edi),%eax

Thread 1 (Thread 0xb7fdd6e0 (LWP 2633)):
#0  0x001fcf8d in ?? () from /lib/ld-linux.so.2
#1  0x00201326 in ?? () from /lib/ld-linux.so.2
#2  0x00206fc0 in ?? () from /lib/ld-linux.so.2
#3  0x086c3fd7 in GPU_state_init ()
#4  0x081ace76 in BIF_init ()
#5  0x081a7fee in main ()
A debugging session is active.

	Inferior 1 [process 2633] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]
Comment 7 Geir Ove Myhr 2009-11-30 07:44:14 UTC
(In reply to comment #6)
> mistr's call trace looks a little different from Sami's, but at least they both
> crash in GPU_state_init():

Actually, the difference in the call trace is only because they were taken using different versions of blender. Thanks to Sami for pointing that out.
Comment 8 Michael Strecke 2009-12-01 04:06:24 UTC
A git-bisection against git://anongit.freedesktop.org/mesa/mesa shows that the problem starts with commit bfbad4fbb7420d3b5e8761c08d197574bfcd44b2.

This one does NOT cause blender to segfault. 
gdb reports that the "program exists with code 0352". 
Output from Blender on the console: "drmRadeonCmdBuffer: -22".

The next commit in line is 4322181e6a07ecb8891c2d1ada74fd48c996a8fc which makes blender segfault.
Comment 9 Alex Deucher 2009-12-01 13:27:23 UTC
Created attachment 31638 [details] [review]
possible fix for r2xx

Does this patch help for the r2xx cards (9000,9200, etc.)?
Comment 10 Geir Ove Myhr 2009-12-01 21:09:00 UTC
(In reply to comment #9)
> Does this patch help for the r2xx cards (9000,9200, etc.)?

I have built the current Ubuntu package (7.6.0 + some patches from 7.6.1) with this patch so that the users with r2xx cards may try it.
Comment 11 Michael Strecke 2009-12-03 01:24:31 UTC
(In reply to comment #9)
> Created an attachment (id=31638) [details]
> possible fix for r2xx
> 
> Does this patch help for the r2xx cards (9000,9200, etc.)?
> 

There is positive feedback in the Ubuntu bugtracker.

On my laptop however (the one that provided above logs) however, nothing has changed, because it uses the radeon driver.
Comment 12 Alex Deucher 2009-12-03 08:26:21 UTC
Pushed the r200 fix to 7.6 branch:
2b5618fc5bdcbee3434f8b5aa3a31eb06fb479c0

I assume the bisection in comment 8 applies to r1xx as well?

Comment 13 Michael Strecke 2009-12-03 08:35:18 UTC
(In reply to comment #12)
> Pushed the r200 fix to 7.6 branch:
> 2b5618fc5bdcbee3434f8b5aa3a31eb06fb479c0
> 
> I assume the bisection in comment 8 applies to r1xx as well?
> 

The laptop that I did the bisection on uses the "radeon" driver. That's at least what "driinfo drivers 0" tells me.

In the source tree is a subdirectory named "radeon" as well as "r200", "r300", ...

If I point LIBGL_DRIVERS_PATH to something other than "radeon" (~/mesa/src/mesa/drivers/dri/radeon") the machine crashes when I start Blender. 

The patch only touched the "r200" subdir.
Comment 14 Geir Ove Myhr 2009-12-03 08:41:02 UTC
(In reply to comment #12)
> I assume the bisection in comment 8 applies to r1xx as well?

Yes, it was only done on r1xx, actually. Michael (mistr) has a ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500].
Comment 15 Alex Deucher 2009-12-03 08:55:34 UTC
Created attachment 31709 [details] [review]
possible fix for r1xx

Does this patch help on r1xx?
Comment 16 Michael Strecke 2009-12-03 17:15:40 UTC
(In reply to comment #15)
> Created an attachment (id=31709) [details]
> possible fix for r1xx
> 
> Does this patch help on r1xx?
> 

Yes. Thank you.
Comment 17 Alex Deucher 2009-12-04 06:56:35 UTC
fix pushed:
8d8fd9776e23a34e0d22e489ce1f85eb5e383121
Comment 18 Alex Deucher 2009-12-19 08:21:47 UTC
*** Bug 25721 has been marked as a duplicate of this bug. ***