When running Descent3.exe -dedicated dedicated.cfg and just calling quit in the server console, the app will crash with the following callstack:
Descent3.exe!opengl_InitCache() Line 315
Descent3.exe!opengl_ResetCache() Line 1493
Descent3.exe!rend_ResetCache() Line 1902
Descent3.exe!FlushDataCache() Line 1887
Descent3.exe!FreeThisLevel() Line 1814
Descent3.exe!GameSequencer() Line 1298
Descent3.exe!PlayGame() Line 835
Descent3.exe!MainLoop() Line 598
Descent3.exe!Descent3() Line 555
Descent3.exe!oeD3Win32App::run() Line 145
I assume that the crash after a finished game round from #217 will also call FreeThisLevel() for cleanup and hit the same crash down the line.
Since the dedicated server never initializes the renderer, OpenGL stuff will also not be initialized. As you can see in the callstack, we end up in opengl_InitCache() which tries to call some OGL function pointers that are still nullptr, since they never got initialized.
Related Issues
Fixes #217
Screenshots (if applicable)
Checklist
[x] I have tested my changes locally and verified that they work as intended.
[x] I have documented any new or modified functionality.
[x] I have reviewed the changes to ensure they do not introduce any unnecessary complexity or duplicate code.
[x] I understand that by submitting this pull request, I am agreeing to license my contributions under the project's license.
Pull Request Type
Description
Going a bit out of a limb here, but I guess that this change fixes https://github.com/DescentDevelopers/Descent3/issues/217.
When running
Descent3.exe -dedicated dedicated.cfg
and just callingquit
in the server console, the app will crash with the following callstack:I assume that the crash after a finished game round from #217 will also call
FreeThisLevel()
for cleanup and hit the same crash down the line.Since the dedicated server never initializes the renderer, OpenGL stuff will also not be initialized. As you can see in the callstack, we end up in
opengl_InitCache()
which tries to call some OGL function pointers that are still nullptr, since they never got initialized.Related Issues
Fixes #217
Screenshots (if applicable)
Checklist
Additional Comments