Bug 26162

Summary: [bisected] gnome-session with compiz startup fails on 945 due to swapbuffers
Product: xorg Reporter: fangxun <xunx.fang>
Component: Driver/intelAssignee: Wang Zhenyu <zhenyu.z.wang>
Status: VERIFIED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: critical    
Priority: high CC: jbarnes, jian.j.zhao
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description fangxun 2010-01-21 19:03:25 UTC
System Environment:
--------------------------
Arch:           x86-64
Platform:       G45
Libdrm:         (master)74937cda177363ff4ede9e2b4ea2bec04cda892e
Mesa:           (master)81430b95d094f81548b9256bc47a8912d9dfd245
Xserver:         (master)6f6a99abc12ddee82898fdabfb50c17e90e094b9
Xf86_video_intel:   (master)96f45c66eed2631eba98ae416c3afdf540fa5c34
Kernel_unstable:  (drm-intel-next)4a42de1a3c2fc04659611338da65e472d04c78b4

Bug detailed description:
-------------------------
With compiz enabled, gnome-session startup fails. OS is Fedora 11. If compiz disabled, gnome-session works well. This issue happens on all platform. The first bad commit is commit 04a54f69a8085ab3fe11a8713bd8b6b16ed1db27.

commit 04a54f69a8085ab3fe11a8713bd8b6b16ed1db27
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Jul 16 09:01:17 2009 -0400

    DRI2: add support for new DRI2 protocol requests

    Support the new DRI2 2.2 protocol requests: DRI2SwapBuffers, DRI2GetMSC,
    DRI2WaitMSC, DRI2WaitSBC and DRI2SwapInterval.

    These requests allow the server to support the SGI_video_sync,
    SGI_swap_interval, and OML_sync_control GLX extensions if DDX support is
    present.  The new DDX APIs are documented in dri2.h.

    Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
    Reviewed-by: Adam Jackson <ajax@nwnk.net>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>


Reproduce steps:
----------------
1.xinit&
2.gnome-session&
Comment 1 Gordon Jin 2010-01-21 21:16:55 UTC
maybe related to bug#26053
Comment 2 Jesse Barnes 2010-01-26 12:45:52 UTC
Can you try again with mesa master?
Comment 3 Jesse Barnes 2010-01-26 14:45:40 UTC
Probably a dupe.

*** This bug has been marked as a duplicate of bug 26053 ***
Comment 4 fangxun 2010-02-04 22:44:22 UTC
This issue still exists on all platform. It seems this is not a dupe of bug#26053.
Comment 5 Jesse Barnes 2010-02-05 08:54:50 UTC
You ran with the same bits as Shuang He from bug 26053?  gnome-session works ok for me, even with compiz enabled.
Comment 6 Gordon Jin 2010-02-06 03:04:20 UTC
(In reply to comment #5)
> You ran with the same bits as Shuang He from bug 26053?  

Yes.
Comment 7 Jesse Barnes 2010-02-06 10:27:39 UTC
If you were running with an old kernel, this may have been fixed by

commit 6610bcbac51c9ac970128012f0d4566d8cfba000
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Fri Feb 5 17:18:50 2010 -0800

    DRI2: only use version 4 APIs if kernel support exists
Comment 8 zhao jian 2010-02-08 03:02:01 UTC
(In reply to comment #7)
> If you were running with an old kernel, this may have been fixed by
> commit 6610bcbac51c9ac970128012f0d4566d8cfba000
> Author: Jesse Barnes <jbarnes@virtuousgeek.org>
> Date:   Fri Feb 5 17:18:50 2010 -0800
>     DRI2: only use version 4 APIs if kernel support exists

We tested with newest code on drm-intel-next. And I also updated our driver to the newest(6610bcbac51c9ac970128012f0d4566d8cfba000 included), but it still fails to start gnome with compiz on. 
Libdrm:         (master)1802e1a4e747b5906d3af10c4a53fd457eddcbb4
Mesa:           (master)5a743d9c513e6a36612872f270ea97b269451280
Xserver:                (master)db687f718f760ba254ab51994769db101dc9ca3a
Xf86_video_intel:       (master)41784e15d39c29af5a87fe8d0982bd1b0be3562d
Kernel: (drm-intel-next)a9c8bea64706f86a9107ab41e7a3e284d1508f9c
Comment 9 zhao jian 2010-02-08 03:02:30 UTC
and when it stucks it has the following backtrace: 
(nm-applet:7282): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
Acceleration key: disabled
XSETTINGS manager support is explicitly disabled.
Traceback (most recent call last):
  File "/usr/bin/sealert", line 108, in <module>
    from setroubleshoot.analyze import *
  File "/usr/lib/python2.5/site-packages/setroubleshoot/analyze.py", line 43, in <module>
    from setroubleshoot.avc_audit import *
  File "/usr/lib/python2.5/site-packages/setroubleshoot/avc_audit.py", line 54, in <module>
    my_context = AvcContext(selinux.getcon()[1])
OSError: [Errno 22] Invalid argument
compiz (video) - Warn: No 8 bit GLX pixmap format, disabling YV12 image format
[mi] EQ overflowing. The server is probably stuck in an infinite loop.

Backtrace:
0: X (xorg_backtrace+0x28) [0x466f98]
1: X (mieqEnqueue+0x1ae) [0x4a2fee]
2: X (xf86PostMotionEventP+0xd8) [0x471188]
3: /opt/X11R7/lib/xorg/modules/input/evdev_drv.so (0x7f7f4d284000+0x50ee) [0x7f7f4d2890ee]
4: X (0x400000+0x72307) [0x472307]
5: X (0x400000+0x1111c7) [0x5111c7]
6: /lib64/libc.so.6 (0x3b3ae00000+0x32f90) [0x3b3ae32f90]
7: /lib64/libc.so.6 (ioctl+0x7) [0x3b3aede037]
8: /opt/X11R7/lib/libdrm_intel.so.1 (0x7f7f4d68f000+0x5326) [0x7f7f4d694326]
9: /opt/X11R7/lib/xorg/modules/drivers/intel_drv.so (0x7f7f4d899000+0x124f8) [0x7f7f4d8ab4f8]
10: /opt/X11R7/lib/xorg/modules/drivers/intel_drv.so (0x7f7f4d899000+0x1420d) [0x7f7f4d8ad20d]
11: X (0x400000+0xd38a8) [0x4d38a8]
12: X (0x400000+0x124d09) [0x524d09]
13: X (BlockHandler+0x50) [0x439380]
14: X (WaitForSomething+0x161) [0x46c571]
15: X (0x400000+0x29018) [0x429018]
16: X (0x400000+0x216bd) [0x4216bd]
17: /lib64/libc.so.6 (__libc_start_main+0xe6) [0x3b3ae1e576]
18: X (0x400000+0x21269) [0x421269]
Comment 10 Jesse Barnes 2010-02-08 16:48:15 UTC
I wonder if this is the same as 26064; please check the kernel patch mentioned in that bug.
Comment 11 zhao jian 2010-02-08 21:34:19 UTC
(In reply to comment #10)
> I wonder if this is the same as 26064; please check the kernel patch mentioned
> in that bug.

Is that patch will work for 945GM and other platforms other than Ironlake? I
have patched it to drm-intel-next on 945GM, and it still fails to start gnome-session with compiz on. 
Comment 12 Jesse Barnes 2010-02-11 09:39:05 UTC
Arg, I don't know why it works for me and not for you.  I've even got the new bits running on Ironlake now with no issues.  This is probably a dupe of #26064, but that doesn't make any sense to me either.
Comment 13 fangxun 2010-02-22 01:26:47 UTC
With current code, I find it works fine on some machines with 64-bit fedora operating system (Piketon,G45). It still fails on 945gme and calpella(os is 32-bit). I make a 32-bit OS and try it on Piketon, G45, it also fails. Maybe it related to 32 and 64-bit OS?
Comment 14 fangxun 2010-03-08 23:39:56 UTC
With bug#26814 fixed, it works well on i965 platform(G45,piketon,calpella,965gm and gm45). But it still fails on i915
platform(945gm and apsire1).
Comment 15 Wang Zhenyu 2010-03-09 00:29:15 UTC
Mark as a dup, if not, reopen. 

*** This bug has been marked as a duplicate of bug 26064 ***
Comment 16 Gordon Jin 2010-03-11 00:09:50 UTC
not dup. bug#26064 has gone around March 6th, while this one still exists.
Comment 17 zhao jian 2010-03-22 17:58:07 UTC
If we disable the pageflip, then the compiz or other full screen applications work well. 
Comment 18 Jesse Barnes 2010-03-22 18:04:22 UTC
Did you test with the patch from Li Peng that landed today?
Comment 19 zhao jian 2010-03-22 18:22:20 UTC
(In reply to comment #18)
> Did you test with the patch from Li Peng that landed today?

No, I haven't yet. But I will update 2D driver and have a test today. 
Comment 20 zhao jian 2010-03-23 02:23:49 UTC
With the newest code on master, it works well now. But with mesa on 7.8 branch, compiz will crash X. As bug #27258. 

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.