View Issue Details

IDProjectCategoryView StatusLast Update
0004790DarkRadiantDesign/Codingpublic09.01.2020 19:25
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version2.6.0 
Target Version2.6.0Fixed in Version2.6.0 
Summary0004790: Crash on auto map load on application startup
DescriptionWith the "Load last map on startup" setting active, DR runs into crashes when setting the RenderSystem reference on its objects. Objects like Faces are relying on the OpenGL shaders being realised with a non-empty material.
Steps To Reproduce- Create a near-empty map with one or two untextured brushes
- Save the map as "test_autoload.map"
- Tick the preference option "Load last map at startup"
- Close DR and re-open it
Additional InformationStacktrace:

-> Crash accessing the getMaterial() smart pointer
DarkRadiant.exe!Face::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 248
DarkRadiant.exe!Brush::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 383
DarkRadiant.exe!BrushNode::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 374
entity.dll!scene::TraversableNodeSet::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 315
entity.dll!scene::Node::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 487
entity.dll!entity::EntityNode::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 249
entity.dll!entity::Doom3GroupNode::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 297
DarkRadiant.exe!scene::TraversableNodeSet::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 315
DarkRadiant.exe!scene::Node::setRenderSystem(const std::shared_ptr<RenderSystem> & renderSystem) Line 487
DarkRadiant.exe!map::Map::loadMapResourceFromPath(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & path) Line 113
DarkRadiant.exe!map::Map::load(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & filename) Line 399
DarkRadiant.exe!map::StartupMapLoader::loadMapSafe::__l2::<lambda>() Line 93
DarkRadiant.exe!sigc::adaptor_functor<void <lambda>(void) >::operator()() Line 251
DarkRadiant.exe!sigc::internal::slot_call0<void <lambda>(void),void>::call_it(sigc::internal::slot_rep * rep) Line 104
DarkRadiant.exe!sigc::internal::signal_emit0<void,sigc::nil>::emit(sigc::internal::signal_impl * impl) Line 772
DarkRadiant.exe!sigc::signal0<void,sigc::nil>::emit() Line 2667
DarkRadiant.exe!sigc::signal0<void,sigc::nil>::operator()() Line 2675
DarkRadiant.exe!render::OpenGLRenderSystem::extensionsInitialised() Line 415
DarkRadiant.exe!OpenGLModule::sharedContextCreated() Line 77
DarkRadiant.exe!OpenGLModule::registerGLCanvas(wxutil::GLWidget * widget) Line 118
DarkRadiant.exe!wxutil::GLWidget::OnPaint(wxPaintEvent & __formal) Line 77
TagsNo tags attached.

Activities

greebo

greebo

05.05.2018 17:12

administrator   ~0010445

Fixed in 6166182

Related Changesets

DarkRadiant: master 61661821

05.05.2018 19:11

greebo


Details Diff
Fix 0004790: Crash on auto map load on application startup. This was due to some sort of data race, shaders were not realised in time for the Faces to acquire the material visibility information. We now realise the rendersystem directly in the extensionsInitialised() method automatically before firing the signal to observers. The OpenGLModule no longer needs to explicitly realise the rendersystem. Affected Issues
0004790
mod - include/version.h Diff File
mod - radiant/render/OpenGLModule.cpp Diff File
mod - radiant/render/OpenGLRenderSystem.cpp Diff File
mod - tools/innosetup/darkradiant.iss Diff File
mod - tools/innosetup/darkradiant.x64.iss Diff File

Issue History

Date Modified Username Field Change
05.05.2018 17:05 greebo New Issue
05.05.2018 17:07 greebo Additional Information Updated
05.05.2018 17:07 greebo Status new => confirmed
05.05.2018 17:09 greebo Assigned To => greebo
05.05.2018 17:09 greebo Status confirmed => assigned
05.05.2018 17:12 greebo Note Added: 0010445
05.05.2018 17:12 greebo Status assigned => resolved
05.05.2018 17:12 greebo Fixed in Version => 2.6.0
05.05.2018 17:12 greebo Resolution open => fixed
28.12.2019 11:01 greebo Status resolved => closed
09.01.2020 19:25 greebo Changeset attached => DarkRadiant master 61661821