Where to start... I am a happy user of nouveau with working 3D. Thanks to a lot of "on-the-bleeding-edge" versions. A DRM-Tree Kernel, a libdrm-9999 and now thanks to the latest Gentoo move to xorg-1.9 with Mesa 7.9. Not quite Mesa 7.9. due to the API breakage in libdrm-2.4.23 (libdrm-9999 clearly being above that) first Mesa 7.9-r1 and now Mesa-7.9.1. The problem i want to describe here comes from another side: LLVM Since i am also interrested in software development i have "the latest and greatest" LLVM. More precisly sys-devel/llvm-9999. Yes, thats the SVN-snapshot, i need it to test llvm/clang because i have several bugs open in the llvm Bugzilla... The problem is now the following: LLVM used to emit MMX code, which would badly interact with the x86 fpu. For this reason Gallium used to disable MMX generation (Mesa-7.9.1/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp:lp_set_target_options(void) passes "-disable-mmx" to llvm). But LLVM droped that option (acording to the original bugreport mentioned in the Gallium source (http://llvm.org/bugs/show_bug.cgi?id=3287) already for llvm-2.8). The result is: llvm aborts, gallium is not working, no gl. Reproducible: Always Steps to Reproduce: 1. make sure you have a gfx-card that would work with gallium 2. add "gallium llvm" to your use flags 2. install newest llvm 3. install mesa-7.9 5. configure mesa to use gallium (eselect mesa) 6. glxinfo Actual Results: $ glxinfo name of display: :0 prog: Unknown command line argument '-disable-mmx'. Try: 'prog -help' $ echo $? 1 Expected Results: $ glxinfo name of display: :0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 server glx extensions: GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,..... .... .... $ echo $? 0 That LLVM-2.8 fails is a guess, i do not have LLVM-2.8 here, but according to the bugreport (http://llvm.org/bugs/show_bug.cgi?id=3287) it should fail. This is a problem for Gentoo, since 2.8 should become stable soon (http://bugs.gentoo.org/show_bug.cgi?id=336371). I made this little patch for my own use, maybe something similar is needed for the ebuild/upstream (with additional foo for 2.8): diff -Nurp Mesa-7.9.1.orig/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp Mesa-7.9.1/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp --- Mesa-7.9.1.orig/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 2010-12-15 22:50:00.000000000 +0100 +++ Mesa-7.9.1/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 2011-01-10 21:48:19.000000000 +0100 @@ -153,6 +153,14 @@ lp_set_target_options(void) * - http://llvm.org/bugs/show_bug.cgi?id=3287 * - http://l4.me.uk/post/2009/06/07/llvm-wrinkle-3-configuration-what-configuration/ */ +#if HAVE_LLVM < 0x0209 + /* + * latest llvm defaults to not emit any MMX, only for intrinsics reqested + * by the user. + * So the -disable-mmx option was removed. + * (It was actually already removed for 2.7, you have to use other magic + * to diable MMX there, see the bug URL for PR3287...) + */ static boolean first = TRUE; if (first) { static const char* options[] = { @@ -162,6 +170,7 @@ lp_set_target_options(void) llvm::cl::ParseCommandLineOptions(2, const_cast<char**>(options)); first = FALSE; } +#endif /* * By default LLVM adds a signal handler to output a pretty stack trace. Greetings Jan
Already fixed in 492afbce almost a month ago.
Should be fixed by mesa-7.10, please reopen if it is not.
having checked the 7.10 sources, this bug isn't fixed in there, and apps fail the same way (for me it's the X server itself, pretty annoying ;). after manually applying the fix things work fine so i guess gentoo needs this patch for now.
2.8 doesn't fail
This fix is still not in 7.10-r1, can someone do a rev bump with a patch for that problem?
I have just been hit by this (rather nasty) bug. My X server just freezes with a black screen and I have to reboot. Some experimentation led me to the conclusion that the issue is related to gallium. Switching to the classic driver (I use the radeon driver) makes the issue go away. A search on gallium led me here. I can reproduce exactly the behavior described in the first post i.e. if I run glxinfo with gallium enabled i get: prog: Unknown command line argument '-disable-mmx'. Try 'prog -help' My llvm was recently updated to 2.9-r1. Mesa/gallium was recompiled shortly thereafer. I will try the patch and report back ... but I am pretty sure it is needed ;-)
Fixed in CVS.