Bug 29444 - OpenGL stopped working after kernel upgrade to 2.6.35
Summary: OpenGL stopped working after kernel upgrade to 2.6.35
Status: RESOLVED DUPLICATE of bug 29327
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Radeon (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-07 23:09 UTC by Simon Munton
Modified: 2010-08-12 14:42 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Output from dmesg (30.14 KB, text/plain)
2010-08-09 13:17 UTC, Simon Munton
no flags Details
xorg log (41.38 KB, text/plain)
2010-08-09 13:18 UTC, Simon Munton
no flags Details

Description Simon Munton 2010-08-07 23:09:52 UTC
After upgrading to kernel 2.6.35, I found that when using hugin, the fast OpenGL based panorama preview stopped working, and the program just froze. 
Same thing happens with glxgears - no gears displayed, and froze.

Backtrace from glxgears:
#0  0xb75606e6 in poll () from /lib/libc.so.6                    
#1  0xb74512eb in ?? () from /usr/lib/libxcb.so.1                
#2  0xb7453955 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#3  0xb764a078 in _XReply () from /usr/lib/libX11.so.6           
#4  0xb7789cef in ?? () from /usr/lib/libGL.so.1                 
#5  0xb77891b8 in ?? () from /usr/lib/libGL.so.1                 
#6  0xb77602fd in glXSwapBuffers () from /usr/lib/libGL.so.1
#7  0x0804a548 in ?? ()
#8  0xb74a1b86 in __libc_start_main () from /lib/libc.so.6
#9  0x080490f1 in ?? ()

Backtrace from hugin:
#0  0xb601d71c in poll () from /lib/libc.so.6
#1  0xb56e32eb in ?? () from /usr/lib/libxcb.so.1
#2  0xb56e5955 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#3  0xb62a0078 in _XReply () from /usr/lib/libX11.so.6
#4  0xb63da08b in ?? () from /usr/lib/libGL.so.1
#5  0xb63d899f in ?? () from /usr/lib/libGL.so.1
#6  0xa0ca9ce7 in ?? () from /usr/lib/xorg/modules/dri/r300_dri.so
#7  0xa0caa5b0 in ?? () from /usr/lib/xorg/modules/dri/r300_dri.so
#8  0xa0c88b22 in ?? () from /usr/lib/xorg/modules/dri/r300_dri.so
#9  0xb63d8304 in ?? () from /usr/lib/libGL.so.1
#10 0xb63b0eac in glXMakeCurrentReadSGI () from /usr/lib/libGL.so.1
#11 0xb6495367 in wxGLContext::SetCurrent(wxGLCanvas const&) const () from /usr/lib/libwx_gtk2u_gl-2.8.so.0
#12 0x0815f016 in GLViewer::SetUpContext (this=0x883ab90) at /home/simon/build/hugin-2010.0.0/src/hugin1/hugin/GLViewer.cpp:105
#13 0x0815f3e0 in GLViewer::RedrawE (this=0x883ab90, e=...) at /home/simon/build/hugin-2010.0.0/src/hugin1/hugin/GLViewer.cpp:156

Doing a bisect on the kernel showed the problem started following commit:
bc35afdb182d4c48c889fe27ba7a5d7ea0c8194d
 drm/radeon/kms: add query for crtc hw id from crtc id to get info V2

As a test, in the X radeon dirver, I then changed drmmode_crtc_hw_id() in drmmode_display.c to ignore the value from the kernel:

--- xf86-video-ati-20100804/src/drmmode_display.c.orig  2010-08-04 21:54:57.000000000 +0100
+++ xf86-video-ati-20100804/src/drmmode_display.c       2010-08-07 22:14:56.000000000 +0100
@@ -547,7 +547,7 @@
                drmmode_crtc->hw_id = -1;
                return;
        }
-       drmmode_crtc->hw_id = tmp;
+       drmmode_crtc->hw_id = -1; /*tmp;*/
 }
 
 static void

After this change glxgears and hugin both work as before the kernel upgrade.


X server    1.8.2
mesa        7.8.2
libdrm      2.4.21
radeon driver   git cc0a167ff2db9b097891883ded147af1d67e4407

Sapphire X1650 pro AGP
RADEON(0): Chipset: "ATI Radeon X1650" (ChipID = 0x71c6)
Comment 2 Simon Munton 2010-08-08 10:45:17 UTC
I'm using a vanilla 2.6.35 kernel, which includes that patch
Comment 3 Alex Deucher 2010-08-09 08:42:01 UTC
Please attach your dmesg and xorg log.
Comment 4 Simon Munton 2010-08-09 13:17:45 UTC
Created attachment 37743 [details]
Output from dmesg
Comment 5 Simon Munton 2010-08-09 13:18:53 UTC
Created attachment 37744 [details]
xorg log
Comment 6 Simon Munton 2010-08-12 14:27:00 UTC
It seems that I need the pci=nomsi option on the kernel command line.
Without it, the radeon card uses MSI, but the kernel doesn't get any interrupts, and waiting for video blanking never ends.

I tried pci=nomsi after seeing this bug report: https://bugs.freedesktop.org/show_bug.cgi?id=29327
Comment 7 Alex Deucher 2010-08-12 14:42:55 UTC

*** This bug has been marked as a duplicate of bug 29327 ***


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.