Same problem here under Arch 64bits on a thinkpad x220 laptop, 8GB of RAM and intel hd 3000.
segmentation fault (core dumped) UDKGame/Binaries/DungeonDefenders-x86
Same on Arch x64, with 4 GB RAM and Intel drivers.
Here's a backtrace. Appears to be the same as above.
Program received signal SIGSEGV, Segmentation fault.
0x09a21c8e in TOpenGLShader<(ERHIResourceTypes)8, 35632u>::Compile() ()
(gdb) bt
#0 0x09a21c8e in TOpenGLShader<(ERHIResourceTypes)8, 35632u>::Compile() ()
#1 0x09a039c7 in FOpenGLDynamicRHI::CreatePixelShader(TArray<unsigned char, FDefaultAllocator> const&) ()
#2 0x08e9bd76 in FShader::InitRHI() ()
#3 0x099fc778 in FOpenGLDynamicRHI::Init() ()
#4 0x09a2dc4e in FOpenGLViewport::FOpenGLViewport(FOpenGLDynamicRHI*, void*, unsigned int, unsigned int, unsigned int) ()
#5 0x09a2c46f in FOpenGLDynamicRHI::CreateViewport(void*, unsigned int, unsigned int, unsigned int) ()
#6 0x090c8b5d in FViewport::UpdateViewportRHI(unsigned int, unsigned int, unsigned int, unsigned int) ()
#7 0x09af9683 in FMacViewport::Resize(unsigned int, unsigned int, unsigned int, int, int) ()
#8 0x09af91d1 in FMacViewport::FMacViewport(UMacClient*, FViewportClient*, wchar_t const*, unsigned int, unsigned int, unsigned int, int, int) ()
#9 0x09af222f in UMacClient::CreateViewportFrame(FViewportClient*, wchar_t const*, unsigned int, unsigned int, unsigned int) ()
#10 0x088c0e5d in FEngineLoop::Init() ()
#11 0x088b80cd in GuardedMain(wchar_t const*, void*, void*, int) ()
#12 0x09af5e32 in appMacCallGuardedMain() ()
#13 0x09aff23b in main ()
Also, segfault error is not displayed in the terminal when running as sudo, but the splash screen still displays then promptly disappears.
This is caused by "GL_EXT_bindable_uniform" being unsupported.
The shader in question (the first fragment program to be loaded, none of the vertex programs seem to require it) begins with:
#version 120
#extension GL_EXT_bindable_uniform : require
which pretty much seals the deal. glxinfo, of course, does not show GL_EXT_bindable uniform as being supported, and MESA_GLSL=dump shows:
GLSL shader 1 failed to compile.
GLSL shader 1 info log:
0:2(12): error: extension `GL_EXT_bindable_uniform' unsupported in fragment shader
Mesa does support GL_ARB_uniform_buffer_object, though, which implements a superset of EXT_bindable_uniform functionality (though I understand Mac OS X has had some problems with it). Perhaps this could be used instead?
-- David
I have GL_EXT_bindable_uniform marked as supported by glxinfo, but still get a crash with the same backtrace.
How do I get the glsl debug output?
export MESA_GLSL=dump
didnt help
Sysinfo:
Arch Linux 64-bit
fglrx version: 12.9-0.1
This is also happening to me. I run Linux Mint 14 64bit
I get this error when trying to launch it
jeggy@jeggy-mint /opt/dungeondefenders/UDKGame/Binaries $
./DungeonDefenders-x86
Segmentation fault (core dumped)
I tried running this command "MESA_GLSL=dump ./DungeonDefenders-x86" and i got
this long here, but still didn't work
http://paste.ubuntu.com/1457339/
As an experiment, I tried MESA_GL_VERSION_OVERRIDE=3.0 and MESA_GL_VERSION_OVERRIDE=2.1, but to no avail; the game isn't checking for the GL version before it tries to use GL_EXT_bindable_uniform.
Comment 10Jan-Marek Glogowski
2012-12-25 00:24:45 EST
I'm on Ubuntu 12.10 (quantal).
I found: http://www.opengl.org/discussion_boards/showthread.php/166810-Any-luck-using-ATI-s-bindable-uniforms?p=1178268&viewfull=1#post1178268
So I "simply" patched the shaders for ATI with sed:
$ cd DungeonDefenders/UDKGame/CookedMacOSX
$ cp RefShaderCache-OpenGL.upk RefShaderCache-OpenGL.upk_
$ cp GlobalShaderCache-OpenGL.bin GlobalShaderCache-OpenGL.bin_
$ sed -i -e 's/GL_EXT_bindable_uniform : require/GL_EXT_bindable_uniform : enable /g' GlobalShaderCache-OpenGL.bin RefShaderCache-OpenGL.upk
I have an AMD / ATI RV710 Mobility Radeon HD 4500, which seems to be to slow to actually play the game. So I can't really check, if it is working, but I don't get a SEGFAULT and after a few ESC I see the title screen.
Ryan,
It looks like most of Dungeon Defenders' shaders contain:
#extension GL_EXT_bindable_uniform : require
but also /*ndabl*/ everywhere...i.e. it looks like it *used* to use the extension, but doesn't anymore. If that's true, would it be possible to remove the #extension lines? We'd like to avoid implementing EXT_bindable_uniform unless we have to (especially since we already support UBOs, which are more forward looking).
It looks like on Mesa/i965, we're hitting some other unrelated crashes, so I'll look into fixing those...
Thanks!
Comment 13Alexander Minges
2012-12-26 17:31:43 EST
(In reply to comment #10)
> I'm on Ubuntu 12.10 (quantal).
>
> I found:
> http://www.opengl.org/discussion_boards/showthread.php/166810-Any-luck-using-ATI-s-bindable-uniforms?p=1178268&viewfull=1#post1178268
>
> So I "simply" patched the shaders for ATI with sed:
>
> $ cd DungeonDefenders/UDKGame/CookedMacOSX
> $ cp RefShaderCache-OpenGL.upk RefShaderCache-OpenGL.upk_
> $ cp GlobalShaderCache-OpenGL.bin GlobalShaderCache-OpenGL.bin_
> $ sed -i -e 's/GL_EXT_bindable_uniform : require/GL_EXT_bindable_uniform :
> enable /g' GlobalShaderCache-OpenGL.bin RefShaderCache-OpenGL.upk
>
> I have an AMD / ATI RV710 Mobility Radeon HD 4500, which seems to be to slow to
> actually play the game. So I can't really check, if it is working, but I don't
> get a SEGFAULT and after a few ESC I see the title screen.
This works for me (Lenovo X220 with Intel HD 3000). I can start and play a game in windowed mode. Changing to fullscreen crashes the game.
(In reply to comment #13)
> (In reply to comment #10)
> > I'm on Ubuntu 12.10 (quantal).
> >
> > I found:
> > http://www.opengl.org/discussion_boards/showthread.php/166810-Any-luck-using-ATI-s-bindable-uniforms?p=1178268&viewfull=1#post1178268
> >
> > So I "simply" patched the shaders for ATI with sed:
> >
> > $ cd DungeonDefenders/UDKGame/CookedMacOSX
> > $ cp RefShaderCache-OpenGL.upk RefShaderCache-OpenGL.upk_
> > $ cp GlobalShaderCache-OpenGL.bin GlobalShaderCache-OpenGL.bin_
> > $ sed -i -e 's/GL_EXT_bindable_uniform : require/GL_EXT_bindable_uniform :
> > enable /g' GlobalShaderCache-OpenGL.bin RefShaderCache-OpenGL.upk
> >
> > I have an AMD / ATI RV710 Mobility Radeon HD 4500, which seems to be to slow to
> > actually play the game. So I can't really check, if it is working, but I don't
> > get a SEGFAULT and after a few ESC I see the title screen.
>
> This works for me (Lenovo X220 with Intel HD 3000). I can start and play a game
> in windowed mode. Changing to fullscreen crashes the game.
On integrated Intel graphics card and the "patch" I'm able to start the game, but the frame rate is unplayable after the intro movies. Also the "Press Any Key to continue..." does work in the intro movies (or works sporadically).
Just following up here...
> It looks like most of Dungeon Defenders' shaders contain:
>
> #extension GL_EXT_bindable_uniform : require
>
> but also /*ndabl*/ everywhere...i.e. it looks like it *used* to use the
> extension, but doesn't anymore.
Turns out to be true:
#if !OPENGL_USE_BINDABLE_UNIFORMS
while (ANSICHAR *Bindable = strstr(CodePtr, "bindable uniform"))
{
Bindable[0] = '/';
Bindable[1] = '*';
Bindable[7] = '*';
Bindable[8] = '/';
}
#endif
...this code is used on Mac OS X, too, even though Apple supports the extension.
I'll chop out the require line for the next build (coming soon!).
--ryan.
Marking several bugs as FIXED. There's a new build for the new Humble Bundle that resolves this issue. Log in to your Humble Bundle account and redownload the game to get the latest version.
(I'll put up a set of files that represent the difference between the two builds; they added more DLC since the first bundle, so you're going to have to download a few hundred megabytes, but it's better than a 5+ gigabytes. I'll try to do that tomorrow.)
--ryan.
Just following up here... > It looks like most of Dungeon Defenders' shaders contain: > > #extension GL_EXT_bindable_uniform : require > > but also /*ndabl*/ everywhere...i.e. it looks like it *used* to use the > extension, but doesn't anymore. Turns out to be true: #if !OPENGL_USE_BINDABLE_UNIFORMS while (ANSICHAR *Bindable = strstr(CodePtr, "bindable uniform")) { Bindable[0] = '/'; Bindable[1] = '*'; Bindable[7] = '*'; Bindable[8] = '/'; } #endif ...this code is used on Mac OS X, too, even though Apple supports the extension. I'll chop out the require line for the next build (coming soon!). --ryan.