Happenstance Posted June 30, 2017 Share Posted June 30, 2017 Posting this here instead of creating a new issue on github because I'm not exactly sure why this happens (or rather, why it doesn't happen in a stock build of T3D).In my build (based off of the latest dev branch with these changes to remove Basic Lighting) I get an assert when exiting the engine:ShadowMapManager::instance() - The singleton has not been created! The problem seems to be caused by ShadowMapManager being destroyed before AdvancedLightManager. The callstack looks something like this: // This causes ShadowMapManager's MODULE_SHUTDOWN macro to run which calls ShadowMapManager::deleteSingleton(). EngineModuleManager::shutdownSystem() .. .. // This calls SHADOWMGR->deactivate(). SHADOWMGR is simply a #define pointing to, you guessed it, ShadowMapManager's singleton instance. Assert time! AdvancedLightManager::deactivate() I can fix this in my build by adding the following to ShadowMapManager's MODULE_BEGIN definition: MODULE_SHUTDOWN_AFTER(Scene) This delays the shutdown of ShadowMapManager until the SceneManager has been destroyed which ensures AdvancedLightManager has also been destroyed. What I can't figure out is why this doesn't happen in stock T3D. Removing Basic Lighting seems to be related to this but I have no idea why. Quote Link to comment Share on other sites More sharing options...
JeffR Posted July 11, 2017 Share Posted July 11, 2017 Looking at this again, I want to say I'd run into something similar a good while back, where tweaking the module cleanup order helped resolve a problem, but I don't remember the particulars.I'll keep an eye towards this, in case anything that seems related pops up. If I spot anything, I can post an update here, but I think for now the module re-order fix is probably a sufficient one. it shouldn't really impact anything negatively. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.