Bug 5315 - Fatal Error: MojoShader compile failed!
Status: RESOLVED FIXED
Alias: None
Product: Super Meat Boy
Classification: Unclassified
Component: everything
Version: unspecified
Hardware: PC Linux
: P3 critical
Assignee: Ryan C. Gordon
QA Contact:
URL:
: 5320 5323 5376 5381
Depends on:
Blocks:
 
Reported: 2011-12-13 14:04 EST by alnkpa
Modified: 2012-06-08 03:47:51 EDT
29 users (show)

See Also:


Attachments
Output of glxinfo (12.03 KB, application/x-info)
2011-12-14 10:37 EST, Sampo Savolainen

Description alnkpa 2011-12-13 14:04:51 EST
Hi there,

I am using Ubuntu as a OS and IronHide to make use of my double graphics cards and stumbled over the error stated in in the summary. I hope you can help me.

Best regards
Comment 1 Sir LulzTrulz 2011-12-13 14:43:39 EST
I have an Intel N10 chip and when I run ./SuperMeatBoy I get:

 Fatal Error: MojoShader compile failed

My laptop also supports the secondary Nvidia chip, but I don't have it set up in any way except disabling it and I don't believe that would be related. Is it possible to make this thing work on Intel? I tried -ultralowdetail to no avail.
Comment 2 Tobias 2011-12-13 16:38:00 EST
Try running on a Dell Latitude E5410 with Intel Graphics, receiving the same error:

Fatal Error: MojoShader compile failed!
Comment 3 alejandro vera 2011-12-14 00:09:48 EST
I have the same error.

first time using i5 with sandy bridge. 

later i used a nvidia 9500 and got the same error

thanks
Comment 4 kenden 2011-12-14 01:29:00 EST
Some on Ubuntu 11.10 with Intel i5 / Sandy bridge.
Comment 5 Sébastien 2011-12-14 01:58:45 EST
Same issue on Gentoo on Latitude E6500 with Intel Graphics.
Comment 6 Matt Giuca 2011-12-14 05:13:27 EST
*** Bug 5320 has been marked as a duplicate of this bug. ***
Comment 7 Matt Giuca 2011-12-14 05:16:52 EST
Me too (Dell XPS 15 L502X; Ubuntu 11.10; Nvidia GeForce GT 540M but using Intel integrated graphics). Using Ironhide. Happy to test patches.
Comment 8 Martin Jørgensen 2011-12-14 06:02:32 EST
me too.

Gentoo x86_64, I7 Sandy Bridge, Mesa 7.10.2, Linux 3.1.5 + i915_RC6
Comment 9 Martin Jørgensen 2011-12-14 07:03:10 EST
oops typo. meant, mesa 7.11.2
Comment 10 Christopher 2011-12-14 07:17:22 EST
Me too, same error on ArchLinux, kernel 3.1.5, using open-source radeon driver, mesa 7.11.2 with a Radeon 6850.. I'm gonna try catalyst..
Comment 11 Christopher 2011-12-14 07:30:00 EST
(In reply to comment #10)
> Me too, same error on ArchLinux, kernel 3.1.5, using open-source radeon driver,
> mesa 7.11.2 with a Radeon 6850.. I'm gonna try catalyst..

Is working with catalyst.. It seems open-source radeon is not supported.
Comment 12 lvella 2011-12-14 09:34:51 EST
It seems to be an issue with Mesa, not only with radeon free driver.

I have an Mobile Intel® GM45 Express, with the official open-source driver, and get the same problem.
Comment 13 Sampo Savolainen 2011-12-14 10:37:13 EST
Created attachment 3037 [details]
Output of glxinfo

I also suffer from this problem. I'm running 64 bit Ubuntu 11.10 on a Thinkpad T420 with integrated Intel graphics.
Comment 14 kenden 2011-12-14 13:26:11 EST
Well, that's that:
"Graphics: May not work with Intel Integrated Graphics"

On the requirement page of the humble indie bundle.
http://humble.assistly.com/customer/portal/articles/261150-humble-indie-bundle-4-system-reqs#smb

Disappointing.
Comment 15 mercutio22 2011-12-14 20:10:44 EST
Hi. Here It also fails. I am on an acer aspire one netbook which has an ati Radeon HD 6250 with the Radeon open source driver.
Comment 16 JockeTF 2011-12-15 10:06:51 EST
Same problem here on Intel 945GM.
Comment 17 Ryan C. Gordon 2011-12-15 10:15:05 EST
Can someone having this problem try this?

In the game's amd64 and x86 directories, there's a file called libstdc++.so.6...rename it to something else and run the game again.

--ryan.
Comment 18 Sven Arvidsson 2011-12-15 10:28:19 EST
(In reply to comment #17)
> Can someone having this problem try this?
> 
> In the game's amd64 and x86 directories, there's a file called
> libstdc++.so.6...rename it to something else and run the game again.
> 
> --ryan.

Renaming libstdc++.so.6 makes no difference here. It's definitely a general Mesa problem though, not specific to Intel, even software rendering gives the same error. 

It doesn't seem to be a problem with the Mesa GLSL compiler crapping out either, setting MESA_GLSL=dump has no effect so it doesn't even get to the point where it tries to compile the shaders. 

This is with Mesa 7.11.2, with current git master the game segfaults on start. It could be a regression, but I'm adding the backtrace here just in case:

Program received signal SIGSEGV, Segmentation fault.
0x00001339 in ?? ()
#0  0x00001339 in ?? ()
#1  0x08191808 in impl_GLSL_CompileShader ()
#2  0x08193500 in MOJOSHADER_glCompileShader ()
#3  0x081c0aae in CreateOpenGLShader(tagShaderCreation const*) ()
#4  0x082a4923 in Shader::CreateShader(tagShaderCreation*) ()
#5  0x08288f2e in FragmentLinker::GetShader() ()
#6  0x081bffc9 in gfxDraw ()
#7  0x0828ab90 in TGraphics::Draw(VertexStream*, IndexBuffer*) ()
#8  0x082721bf in FlashSymbol::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#9  0x08274f33 in FlashLibraryInstance::TimelineRender(float, float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#10 0x08275339 in FlashTimeline::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#11 0x0827543b in FlashMovieClip::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#12 0x08274f33 in FlashLibraryInstance::TimelineRender(float, float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#13 0x08275339 in FlashTimeline::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#14 0x0827543b in FlashMovieClip::Render(float, ColorTemplate<float> const&, ColorTemplate<float> const&, FlashLibraryInstance*) ()
#15 0x0826f37e in FlashLibraryInstance::Render() ()
#16 0x0810e754 in GSMBMenu::RenderTitleScreenForIntro() ()
#17 0x080b49ff in GMeatHUD::Render() ()
#18 0x0829bfeb in RenderLayers::Render() ()
#19 0x08281b7d in TEngine::Render() ()
#20 0x08281e5b in TEngine::EngineRun() ()
#21 0x08281fd1 in TEngine::Run() ()
#22 0x080a90be in main ()
Comment 19 alnkpa 2011-12-15 11:05:37 EST
(In reply to comment #17)
> Can someone having this problem try this?
> 
> In the game's amd64 and x86 directories, there's a file called
> libstdc++.so.6...rename it to something else and run the game again.
> 
> --ryan.

Tried it as well, doesn't work either.
Comment 20 David 2011-12-15 15:34:29 EST
Getting that exact same SegFault in MESA 7.3 and running ATI Catalyst 9.3 drivers (see other thread)..  Definitely not a MESA regression.
Comment 21 mercutio22 2011-12-15 17:10:54 EST
(In reply to comment #17)
> Can someone having this problem try this?
> 
> In the game's amd64 and x86 directories, there's a file called
> libstdc++.so.6...rename it to something else and run the game again.
> 
> --ryan.

Didn't do it for me.
Comment 22 Evans Tucker 2011-12-15 21:14:21 EST
I have the same issue with the 32-bit version on my Dell laptop, and the 64-bit version on my custom desktop. Both computers are running the Ubuntu 11.10. The desktop was running the Nouveau driver for my video card. After installing the nVidia driver (which messes up my VESA text mode display), Super Meat Boy works! However, I don't have that option with my 32-bit laptop, and I'd like to be able to play it on the Nouveau driver on my 64-bit desktop too. If there is anything I can submit to help you troubleshoot, please let me know.
Comment 23 Rémi Pannequin 2011-12-16 03:02:22 EST
(In reply to comment #20)
> Getting that exact same SegFault in MESA 7.3 and running ATI Catalyst 9.3
> drivers (see other thread)..  Definitely not a MESA regression.

I got the game running without error on my other machine, with the proprietary ATI drivers from ubuntu's repos.
Comment 24 David 2011-12-16 11:47:19 EST
Would setting  export MESA_GLSL=dump,nopt be useful for debugging?  I'm assuming of course that the problem is with MESA's GLSL compiler which still has some unsupported features according to: http://www.mesa3d.org/shading.html

I think the proprietary drivers ship their own GLSL compiler, right?  If so, that doesn't help me as I'm stuck on old proprietary drivers that won't work because AMD dropped support for the old hardware and it looks like MESA's GLSL compiler isn't working either.
Comment 25 Sven Arvidsson 2011-12-16 11:55:35 EST
(In reply to comment #24)
> Would setting  export MESA_GLSL=dump,nopt be useful for debugging?  I'm
> assuming of course that the problem is with MESA's GLSL compiler which still
> has some unsupported features according to: http://www.mesa3d.org/shading.html
> 
> I think the proprietary drivers ship their own GLSL compiler, right?  If so,
> that doesn't help me as I'm stuck on old proprietary drivers that won't work
> because AMD dropped support for the old hardware and it looks like MESA's GLSL
> compiler isn't working either.

As I mentioned in an earlier reply, this has no effect. It seems whatever it is that goes wrong does so before the shaders are handed off to the compiler.
Comment 26 Sven Arvidsson 2011-12-16 12:13:57 EST
Got it!

The difference between Fedora and everybody else is that they are building Mesa with the --disable-asm flag. I'm not quite sure what this does, but the comment in the spec file says "i do not have words for how much the assembly dispatch code infuriates me".

Anyway, I'll file a bug about this in the Mesa bug tracker later and if it can't be resolved there, other distros need to start building it the same way as Fedora. 

Now I'm gonna play some Meat Boy! :)
Comment 27 David 2011-12-16 12:29:23 EST
It looks like --disable-asm will disable some platform specific assembly language optimizations in MESA which are enabled by default for performance reasons. So I agree that it does seem like a bug in MESA.
Comment 28 Stefan Zwanenburg 2011-12-16 13:06:40 EST
I run into this problem as well, with the radeon driver (using Gallium3D as the 'backend'). Now, I'm wondering if this is due to the driver not implementing these shaders, or if it is because of something else entirely.
It'd be nice if the game could be run on machines using these drivers, as the proprietary drivers aren't always all that good (I have problems with fglrx).

If there's any kind of debug information I can provide, please do tell me what and how I can get it.
Comment 29 Sven Arvidsson 2011-12-16 13:50:44 EST
(In reply to comment #28)
> I run into this problem as well, with the radeon driver (using Gallium3D as the
> 'backend'). 

It's the same problem for all the Mesa drivers, see previous replies for an explanation.
Comment 30 Sven Arvidsson 2011-12-16 14:07:42 EST
I filed a bug with Mesa:
https://bugs.freedesktop.org/show_bug.cgi?id=43896
Comment 31 Loris Z. 2011-12-16 21:10:27 EST
Hi,
This is the situation on my ASUS N43SL, with Ubuntu 11.10 and Bumblebee :
Shank :
intel -> wrong rendering
nvidia -> segfault
Comment 32 David 2011-12-16 21:22:30 EST
I can get the game to run in Virtual Box with a Windows host OS and Debian Testing as the guest.  Rendering is incorrect though, text does not display in the text boxes at the beginning intro or in the menu..
Comment 33 Loris Z. 2011-12-16 21:33:25 EST
Update for Super Meat Boy :
intel -> mojo error
nvidia -> runs fine
Comment 34 Laurent Carlier 2011-12-20 05:28:47 EST
*** Bug 5323 has been marked as a duplicate of this bug. ***
Comment 35 Laurent Carlier 2011-12-20 05:41:47 EST
*** Bug 5330 has been marked as a duplicate of this bug. ***
Comment 36 Laurent Carlier 2011-12-20 05:42:27 EST
*** Bug 5376 has been marked as a duplicate of this bug. ***
Comment 37 Marti 2011-12-20 05:46:02 EST
So given that Mesa has said it's an application bug, are you working on a fix for SMB?
Comment 38 Ryan C. Gordon 2011-12-21 04:51:53 EST
Having read the bug report against Mesa, they are correct, this is definitely a MojoShader bug.


Can those triggering this bug please try this build?

   http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2

Unpack that in your game installation, so it overwrites the game binaries.

Please report back with your results.

Thanks!

--ryan.
Comment 39 Martin Jørgensen 2011-12-21 05:03:43 EST
works for me :)
Comment 40 alnkpa 2011-12-21 05:09:50 EST
Yep, works.
Comment 41 Stefan Zwanenburg 2011-12-21 05:17:43 EST
(In reply to comment #38)
> Can those triggering this bug please try this build?
> 
>    http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2
> 
> Unpack that in your game installation, so it overwrites the game binaries.
> 
> Please report back with your results.
> 
> Thanks!
> 
> --ryan.

This also works for me. That's awesome. Thanks!
Comment 42 Sébastien 2011-12-21 06:57:39 EST
It's also working for me :) 

(In reply to comment #38)
> Having read the bug report against Mesa, they are correct, this is definitely a
> MojoShader bug.
> 
> 
> Can those triggering this bug please try this build?
> 
>    http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2
> 
> Unpack that in your game installation, so it overwrites the game binaries.
> 
> Please report back with your results.
> 
> Thanks!
> 
> --ryan.
Comment 43 Matt Giuca 2011-12-21 08:11:49 EST
(In reply to comment #38)
Works for me too! Thanks Ryan.
Comment 44 David 2011-12-21 09:07:48 EST
Debian Lenny 5.0 (32-bit) 
AMD Catalyst 9.3 drivers (2009)
AMD Mobility X700
Mesa 7.3

Confirmed..
SMB is now working here as well!!!
Comment 45 JockeTF 2011-12-21 21:15:46 EST
The hotfix is working, thanks!
Comment 46 landonbrainard 2011-12-22 08:15:11 EST
(In reply to comment #38)
> Having read the bug report against Mesa, they are correct, this is definitely a
> MojoShader bug.
> 
> 
> Can those triggering this bug please try this build?
> 
>    http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2
> 
> Unpack that in your game installation, so it overwrites the game binaries.
> 
> Please report back with your results.
> 
> Thanks!
> 
> --ryan.

Fixed it. Thanks.
Comment 47 Ryan C. Gordon 2011-12-22 11:32:03 EST
*** Bug 5381 has been marked as a duplicate of this bug. ***
Comment 48 Ryan C. Gordon 2011-12-22 12:47:54 EST
*** Bug 5333 has been marked as a duplicate of this bug. ***
Comment 49 Thomas Schneider 2011-12-25 16:38:22 EST
(In reply to comment #38)
> Having read the bug report against Mesa, they are correct, this is definitely a
> MojoShader bug.
> 
> 
> Can those triggering this bug please try this build?
> 
>    http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2
> 
> Unpack that in your game installation, so it overwrites the game binaries.
> 
> Please report back with your results.
> 
> Thanks!
> 
> --ryan.

Works :)
Comment 50 Wouter van der Graaf 2012-02-08 07:42:09 EST
(In reply to comment #38)
> Having read the bug report against Mesa, they are correct, this is definitely a
> MojoShader bug.
> 
> 
> Can those triggering this bug please try this build?
> 
>    http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2
> 
> Unpack that in your game installation, so it overwrites the game binaries.
> 
> Please report back with your results.
> 
> Thanks!
> 
> --ryan.

Yep, had the same MojoShader error and with this it works!

When will this be released officially?

Wouter
Comment 51 Ryan C. Gordon 2012-06-07 13:13:32 EDT
(I'm changing several bugs at once, sorry if you get this message multiple times.)

Humble Indie Bundle #5 is adding Super Meat Boy (among other games) to the promotion today, and we've updated the Linux build with several fixes for it. This will be available at the same time to people that purchased SMB through Humble Indie Bundle #4, too.

I'm updating this bug because I believe this new build fixes the issue reported here. Unless there is an objection, this bug will be marked as RESOLVED FIXED soon.

For those that want the complete package, just redownload the game from humblebundle.com, using your existing download URL. You can run uninstall-supermeatboy.sh in your installation before installing the new copy; your save games will survive. 

For those that don't want to redownload the whole game, here's just the changed files (3 megabyte download). Unpack it and overwrite the appropriate files in your installation with the new version.

    http://treefort.icculus.org/smb/smb-build2-changed-files.tar.bz2

Please note that this build does not resolve every bug reported in Bugzilla, but it should be much better than the original build.

--ryan.
Comment 52 Ryan C. Gordon 2012-06-08 03:47:51 EDT

Closing several bugs as RESOLVED FIXED. Please reopen them if you're still having this issue in the new build.

Please open a new bug, or CC yourself on an existing bug, if you're (still) having a different issue.

Thanks!

--ryan.