-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux build crashes #54
Comments
This is something i can confirm. Using GDB with debug symbols does not lead to anything. (other than the fact the driver crashed) This happens with both nouveau and llvmpipe. Last time i tried last month, it was also crashing. |
Ok, so i discovered the commit that makes the Linux build crash. Seems like Renderbuffers does not work properly on Linux... Or maybe the code is not compliant. |
@gameblabla there's a command-line switch called -norenderbuffers. Use that, and the game should start. Anyways, I made further GLSL shader path fixes (though shaders right now, while they now compile from path/file, still need to get the screen quad set up beforehand) that should get the game started. Please retry and let me know if it is fixed. |
@Corbachu I have tried the new build (commit 9fc9260) and it is still failing to launch doom. I have tried with and without the -norenderbuffers option, both without success. I am using the latest proprietary linux nvidia drivers (387.34). In addition to this, the windows build of hyper3DGE (2.1.0 test 3) runs just fine in linux through wine. Lasty, other doom ports like gzdoom (tested a couple of days ago) compile and run just fine. Hope that helps. EDIT: Also commit 59aaf38 |
@dsdman Have you tried the newest revision?? Made some big changes..try it out. If it still fails then it might be a driver related issue. |
@Corbachu currently testing the newest revision. There is a build error on line 271 of con_main.cc due to a function call to '_strupr', which seems to be a part of the Microsoft C library (probably not supported in GNU gcc/g++, hence the build error). It compiles if you comment out the line or change it to strdup. Once compiled, it still doesn't run Doom, so it may be some kind of proprietary Nvidia driver issue with linux, although I have no idea how to confirm if this is the case or not. When I try to debug it using gdb, it claims that the program exited normally. |
@dsdman What does your Debug.txt contain? That would help me figure out what is going wrong, specifically the OpenGL settings. If it turns out GLSL isn't supported or working right, than it might be the cause. Also, the program should be calling I_Error, not just exiting normally, so that makes me think some sort of OpenGL Extension is mucking stuff up. Try recompiling with the DEBUG pre-processor, and you could even use DEVELOPERS. Usually I use those if I need a little more information about what is going on that can't normally be provided otherwise. And, just if it helps, I also use the pre-processor flag NDEBUG. |
So, I tried my hand at this and I found something rather amusing. On Linux, E_Main is never called from main. That's... a rather big oversight. Technically, this is not a crash, it just exits cleanly. |
@Corbachu I have recompiled with "-DDEBUG -DDEVELOPERS -DNDEBUG" added to the definitions in CMakeLists, but there seems to be no 'Debug.txt' generated when I run hyper3dge (I can confirm that the preprocessors are being passed if I enable VERBOSE when compiling). I do however have the output of gdb log file:
Judging from this, it seems to be that @OrdinaryMagician might be right about E_Main not being called, as it seems to never leave i_main.cc. |
UPDATE: I have now got the program to run by adding:
below line 142 (just below the WIN32 ifdef). I then had to add edge.epk from the windows build (seems to be missing from data.) Now the program runs, but there are no graphics (no menu, no game graphics) sounds seem to work just fine. EDIT: Here is the output of the program. EDIT2: I have found both 'Debug.txt' and 'edgegl.txt' in my home directory (~/.EDGE2) while doing something else. Here they are: |
@dsdman Go ahead and commit your changes for the other Linux users, if you can, I appreciate it :-) @OrdinaryMagician thank you so much for looking into it <3 Enable edgegl.txt output, I forget where I had it ifdefed (at work ATM), but its used to show if the shaders have been compiled and read successfully. Also try running again with -norenderbuffers. |
@dsdman, marking as resolved - for missing display, open another issue so we can track it, thanks again! :-) |
hehe this bit me (i'm baaack! ;) Same issue hits me on OpenBSD, but many things have changed since I last was involved. I'll try and make some neat little pull requests shortly.... |
hyper3DGE git build (latest commit as of 01/13/18). Running Arch linux kernel 4.14.13. i7 4720hq processor, nvidia gtx 960m, and 16 gigs of ram. I have all dependencies installed.
While hyper3DGE compiles just fine, running the binary does nothing.
Steps to reproduce:
I have also tried ./3DGE -ddf doom_ddf -iwad DOOM2.WAD with the same results.
Thanks again.
The text was updated successfully, but these errors were encountered: