View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004790 | DarkRadiant | Design/Coding | public | 05.05.2018 17:05 | 09.01.2020 19:25 |
Reporter | greebo | Assigned To | greebo | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 2.6.0 | ||||
Target Version | 2.6.0 | Fixed in Version | 2.6.0 | ||
Summary | 0004790: Crash on auto map load on application startup | ||||
Description | With 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 Information | Stacktrace: -> 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 | ||||
Tags | No tags attached. | ||||
DarkRadiant: master 61661821 05.05.2018 19:11 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 |
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 |