Linux Steam version crashes on CPUs without SSE4.1

Please post any bugs you find in this subforum - one bug per topic. This will make it easier for us to any issues. Thank you for your help!
Forum rules
Please post any bugs you find in this subforum - one bug per topic. This will make it easier for us to any issues. Thank you for your help!
Post Reply
jrm
Posts: 1
Joined: Tue Aug 25, 2015 11:23 am

Linux Steam version crashes on CPUs without SSE4.1

Post by jrm »

The Linux build currently on Steam uses SSE4.1 instructions, which some CPUs don't support, causing the game to crash during startup on systems with such CPUs.

The Linux build on Humble Bundle doesn't have this problem, so it's probably a problem in the build system for Steam.

Here's the backtrace:

Code: Select all

Program received signal SIGILL, Illegal instruction.
0x080cd012 in RenderState_SetClearColor (a=<optimized out>, b=<optimized out>, g=0, r=<optimized out>)
at ./engine/renderer/opengl/opengl_render_state_inlines.h:78
78 ./engine/renderer/opengl/opengl_render_state_inlines.h: No such file or directory.
(gdb) bt
#0 0x080cd012 in RenderState_SetClearColor (a=<optimized out>, b=<optimized out>, g=0, r=<optimized out>)
at ./engine/renderer/opengl/opengl_render_state_inlines.h:78
#1 Render_DrawInternal (scene=0x83276cc <g_render_globalData+12>, color=0x8327700 <g_render_globalData+64>, blurQuality=BlurQuality_High)
at ../../external/libjpeg-turbo/jpeglib.h:2139
#2 0x080607a4 in Render_DrawEnd (blurQuality=<optimized out>) at ./engine/render.h:423
#3 Game::RenderNormal (this=0x8317c40 <g_game>) at game/Game_loading_logo_inl.h:2455
#4 0x080621c0 in Render (this=<optimized out>) at game/Game_loading_logo_inl.h:1230
#5 LoopFrame (this=<optimized out>) at game/game_controllers_inl.h:353
#6 Loop (this=<optimized out>) at game/Game.h:463
#7 Game_Run (settings=...) at ./engine/shaders/BasicShaders.h:1061
#8 0x08052675 in GameMain (argc=argc@entry=1, argv=argv@entry=0xffcadcd4) at ../gamelib/engine/platform/pc/pc_native.h:542
#9 0x0804c36e in main (argc=1, argv=0xffcadcd4) at ../gamelib/engine/string.h:914
And the offending instruction (insertps is from the SSE4.1 instruction set):

Code: Select all

(gdb) x/i $pc
=> 0x80cd012 <Render_DrawInternal(Render_Scene const*, unsigned int const*, BlurQuality)+306>: insertps $0x10,0x20(%esp),%xmm1
I also posted about this in the stickied thread in the Steam forum, but I figured you're probably watching this forum more closely.
User avatar
RightClickSaveAs
Posts: 535
Joined: Mon Oct 07, 2013 4:22 pm

Re: Linux Steam version crashes on CPUs without SSE4.1

Post by RightClickSaveAs »

Hey jrm, normally Matt would have responded to this by now, but I believe this is the week their baby was due, so he may not be around for a little while. I'm sure he'll get to you at some point, he's always been on top of bug squashing!
User avatar
matt
Posts: 2316
Joined: Fri Oct 04, 2013 10:48 am

Re: Linux Steam version crashes on CPUs without SSE4.1

Post by matt »

Holy crap! That is super helpful. Our linux crash logging didn't work, so we were getting crash reports and no callstack. We pushed a new build to Steam with a few new features, but we didn't push it everywhere because of all the linux crash reports we were getting.

The new Steam build probably uses updated versions of 3rd party libraries from our old 1.4 build, so the dependency on SSE4.1 is totally unintentional.

As RightClickSaveAs pointed out, I am indeed off on paternity leave. My wife gave birth to a healthy 7 pound 6 ounce boy on Saturday. It's been quite an adjustment being a new dad, but I've been trying to stay on top of all the stability issues we are having. (Unfortunately, we are having some Android issues as well. :( )

Anyway, thank you so much for providing this info. I've passed it along to Dan who is covering for me, and *hopefully* he can get a new Linux build up by tomorrow morning.

Once we can confirm that it is stable, then we'll update our DRM-Free versions. There isn't a HUGE difference between 2.0 and the current DRM-free builds, so you aren't missing much if you play them. The main new feature is you can load your save at the branching points if you want to get all the ending.

Thanks again! I'll be taking at least a week more off, but I'll try to check in here and there.

*EDIT* This should be fixed in build 2.0.20761 and higher. (You can see the build number in the extras menu) Dan said he posted it to Steam, so this should be resolved. Thank you so much for your help! We never would have figured it out. :)
-Matt Gilgenbach
Lead Frightener at Infinitap Games
Post Reply