Jump to content
The Dark Mod Forums

DarkRadiant 3.5.0 released


Recommended Posts

14 hours ago, AluminumHaste said:

@AluminumHaste@SeriousToni This should be fixed in source now. The automated build is running on Github, you can grab a portable package when the build is done (scroll down to the Artifacts section):

https://github.com/codereader/DarkRadiant/actions/runs/3358810112

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

54 minutes ago, greebo said:

@AluminumHaste@SeriousToni This should be fixed in source now. The automated build is running on Github, you can grab a portable package when the build is done (scroll down to the Artifacts section):

https://github.com/codereader/DarkRadiant/actions/runs/3358810112

You're working in the speed of light. 🚀

"Einen giftigen Trank aus Kräutern und Wurzeln für die närrischen Städter wollen wir brauen." - Text aus einem verlassenen Heidenlager

Link to comment
Share on other sites

22 minutes ago, Baal said:

But Darkradiant crashes when I undock textures, open the texture tool or the light inspector.

Ok, please report that (along with the distro you're using), I'll try to look into it. (Sorry if I'm seemingly asking all the time about your Linux configs, I just can't keep track who's using what combination).

Link to comment
Share on other sites

18 hours ago, datiswous said:

This only happens with extra views and the undocked texture tool.

It also happens when you undock the textures tab or media tab (only image preview is affected) in Properties.

 

12 minutes ago, greebo said:

(Sorry if I'm seemingly asking all the time about your Linux configs, I just can't keep track who's using what combination)

I put my Linux distro under my user pic on the left

Edited by datiswous
Link to comment
Share on other sites

I'm having this weird issue where copy/paste shader stops working properly.  It will paste the texture, but not the position/scale from where it was copied.  If you copy/paste between two surfaces with the same texture but different offset/scale, the result is it appears to just do nothing.

If I restart DR, it goes away for a while but then comes back.  Is there a setting for this anywhere?  Anyone else getting this?  Because it's random, a bug report probably wouldn't be very helpful without proper steps to reproduce.  I don't remember ever seeing this before 3.5.0.

  • Thanks 1
Link to comment
Share on other sites

The DR log file is all there is to see, I'm afraid. In case of crashes it will attempt to write some trace lines to the file, so maybe it contains something. DR doesn't have any log verbosity to configure like TDM.

Otherwise it's just gdb and you, if there's no SIGSEGV or something recorded by gdb, then it's not a regular crash, maybe it's an exception - in which case there should be some log output in darkradiant.log too.

Link to comment
Share on other sites

29 minutes ago, greebo said:

maybe it's an exception

Of course. I forgot about these.

Here. Calling stod() with "TextureTool" throws an exception.

#0  0x00007ffff66a5f91 in __cxxabiv1::__cxa_throw(void*, std::type_info*, void (*)(void*)) (obj=0x55555aedcef0, tinfo=0x7ffff6829198 <typeinfo for std::invalid_argument>, dest=0x7ffff66bd690 <std::invalid_argument::~invalid_argument()>) at /usr/src/debug/gcc/libstdc++-v3/libsupc++/eh_throw.cc:81

#1  0x00007ffff669c471 in std::__throw_invalid_argument(char const*) (__s=__s@entry=0x7fffebd70578 "stod") at /usr/src/debug/gcc/libstdc++-v3/src/c++11/functexcept.cc:78

#2  0x000055555571a247 in __gnu_cxx::__stoa<double, double, char>(double (*)(char const*, char**), char const*, char const*, unsigned long*) (__convf=0x7ffff6459470 <strtof64>, __name=0x7fffebd70578 "stod", __str=0x7fffffffc5c0 "TextureTool", __idx=0x0) at /usr/include/c++/12.2.0/ext/string_conversions.h:83

#3  0x00007fffeb917bee in std::__cxx11::stod(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long*) (__idx=0x0, __str=<optimized out>) at /usr/include/c++/12.2.0/bits/basic_string.h:4002

#4  string::convert<double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double) (str="TextureTool", defaultVal=0) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/libs/string/convert.h:36

#5  cmd::Argument::Argument(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x7fffffffc610, str="TextureTool") at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/include/icommandsystem.h:58

#6  0x00007fffeb915a37 in cmd::parseCommandString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (input=<optimized out>) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiantcore/commandsystem/CommandSystem.cpp:322

#7  0x00007fffeb915dcd in cmd::CommandSystem::execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x555556394990, input=<optimized out>) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiantcore/commandsystem/CommandSystem.cpp:360

#8  0x00007fffeb9125cb in cmd::CommandSystem::executeCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<cmd::Argument, std::allocator<cmd::Argument> > const&) (this=0x555556394990, name="ToggleTextureTool", args=std::vector of length 0, capacity 0) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiantcore/commandsystem/CommandSystem.cpp:382

#9  0x00007fffeb915df3 in cmd::CommandSystem::execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x555556394990, input=<optimized out>) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiantcore/commandsystem/CommandSystem.cpp:365

#10 0x00005555556e7d62 in ui::EventManager::handleKeyEvent(wxKeyEvent&) (this=<optimized out>, keyEvent=...) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiant/eventmanager/EventManager.cpp:683

#11 0x000055555570615e in ui::GlobalKeyEventFilter::handleAccelerator(wxKeyEvent&) (this=this@entry=0x555556c194a0, keyEvent=...) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiant/eventmanager/GlobalKeyEventFilter.cpp:166

#12 0x00005555557061c2 in ui::GlobalKeyEventFilter::FilterEvent(wxEvent&) (event=..., this=0x555556c194a0) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiant/eventmanager/GlobalKeyEventFilter.cpp:85

#13 ui::GlobalKeyEventFilter::FilterEvent(wxEvent&) (this=0x555556c194a0, event=...) at /home/sebastian/.packages/darkradiant-debug-git/src/DarkRadiant/radiant/eventmanager/GlobalKeyEventFilter.cpp:66

#14 0x00007ffff79862ad in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0

#15 0x00007ffff7986cdb in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0

 

Link to comment
Share on other sites

I think this exception is nothing unusual, these are all caught in the cmd::Argument class. (Not that this design is particularly good, but it should not cause a problem, let alone a shutdown). Is there anything else following this part? Any messages in the .log file?

Link to comment
Share on other sites

There's nothing in the logfile.

I can continue looking, but I don't know where to begin. Do you have a suggestion where I could set a breakpoint to start from?

It happens on undock textures, opening the light inspector and the texture tool, maybe others. 

Link to comment
Share on other sites

On 10/31/2022 at 12:05 PM, greebo said:

Can anybody of the other folks running Linux confirm this troublesome rendering issue?

Launching a new 2D view, TexTool, or Light window all cause a crash for me as well in the Flatpak version (using Fedora and AMD).  I'd guess junk rendering or the crash might both stem from the same underlying issue.  Interestingly, the Light window actually displays and the area where you choose your material says "Loading Resources" before it stops.

Running it in GDB yields a SIGTRAP.  Here's the stack trace:

Spoiler
Thread 1 "darkradiant" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7ce2def in g_log_structured_array () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7ce2def in g_log_structured_array () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff7ce2fb6 in g_log_structured_standard () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff57a6fc3 in _gdk_x11_display_error_event () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#3  0x00007ffff57b4cd3 in gdk_x_error () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#4  0x00007ffff5234d1b in _XError () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007ffff52315df in handle_error () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007ffff5231685 in handle_response () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#7  0x00007ffff5232172 in _XEventsQueued () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#8  0x00007ffff52354bd in _XGetRequest () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#9  0x00007ffff2426285 in XRenderFillRectangles () at /usr/lib/x86_64-linux-gnu/libXrender.so.1
#10 0x00007ffff5638ffd in fill_boxes () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#11 0x00007ffff561ba26 in clip_and_composite_boxes.part () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#12 0x00007ffff561bf25 in _cairo_traps_compositor_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#13 0x00007ffff55bf3d2 in _cairo_compositor_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#14 0x00007ffff56404a0 in _cairo_xlib_surface_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#15 0x00007ffff56134bb in _cairo_surface_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#16 0x00007ffff55c821c in _cairo_gstate_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#17 0x00007ffff55c0ece in _cairo_default_context_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#18 0x00007ffff56213bf in cairo_fill () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#19 0x00007ffff5b29ba0 in render_frame_fill () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff5b29fb2 in render_border () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff5b2b05f in gtk_css_style_render_border () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffff59db5e2 in gtk_css_gadget_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007ffff5b37725 in gtk_scrolled_window_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007ffff5c1395c in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#41 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#46 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#47 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#48 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#49 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#50 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#51 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#52 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#53 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#54 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#55 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#56 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#57 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#58 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#59 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#60 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#61 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#62 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#63 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#64 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#65 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#66 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#67 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#68 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#69 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#70 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#71 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#72 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#73 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#74 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#75 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#76 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#77 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#78 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#79 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#80 0x00007ffff5a4bc49 in gtk_fixed_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#81 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#82 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#83 0x00007ffff5344ccc in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#84 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#85 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#86 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#87 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#88 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#89 0x00007ffff59d0354 in gtk_container_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#90 0x00007ffff597d72a in gtk_box_draw_contents () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#91 0x00007ffff59d5995 in gtk_css_custom_gadget_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#92 0x00007ffff59db682 in gtk_css_gadget_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#93 0x00007ffff597ec75 in gtk_box_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#94 0x00007ffff5c1395c in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#95 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#96 0x00007ffff59d0354 in gtk_container_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#97 0x00007ffff5a26273 in gtk_event_box_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#98 0x00007ffff5c61a41 in _gtk_marshal_BOOLEAN__BOXED () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#99 0x00007ffff5c060f6 in gtk_widget_draw_marshaller () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#100 0x00007ffff5344d92 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#101 0x00007ffff5373733 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#102 0x00007ffff5362c2a in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#103 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#104 0x00007ffff5c13ab1 in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#105 0x00007ffff59d0226 in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#106 0x00007ffff59d0354 in gtk_container_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#107 0x00007ffff5c1395c in gtk_widget_draw_internal () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#108 0x00007ffff5c1d310 in gtk_widget_render () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#109 0x00007ffff5aaf957 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#110 0x00007ffff5778181 in _gdk_event_emit () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#111 0x00007ffff578a479 in _gdk_window_process_updates_recurse_helper () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#112 0x00007ffff578c132 in gdk_window_process_updates_internal () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#113 0x00007ffff578c32d in gdk_window_process_updates_with_mode () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#114 0x00007ffff5363330 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#115 0x00007ffff5363463 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#116 0x00007ffff5782bb5 in gdk_frame_clock_paint_idle () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#117 0x00007ffff576bbdd in gdk_threads_dispatch () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#118 0x00007ffff7cdc318 in g_timeout_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#119 0x00007ffff7cdbc37 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#120 0x00007ffff7d32008 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#121 0x00007ffff7cdb2af in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#122 0x00007ffff5aaea95 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#123 0x00007ffff7566345 in wxGUIEventLoop::DoRun() () at /app/lib/libwx_gtk3u_core-3.2.so.0
#124 0x00007ffff79bdf4a in wxEventLoopBase::Run() () at /app/lib/libwx_baseu-3.2.so.0
#125 0x00007ffff797f5d8 in wxAppConsoleBase::MainLoop() () at /app/lib/libwx_baseu-3.2.so.0
#126 0x00007ffff7a0da79 in wxEntry(int&, wchar_t**) () at /app/lib/libwx_baseu-3.2.so.0
#127 0x00005555556ca734 in  ()
#128 0x00007ffff630954a in __libc_start_call_main () at /usr/lib/x86_64-linux-gnu/libc.so.6
#129 0x00007ffff630960b in __libc_start_main () at /usr/lib/x86_64-linux-gnu/libc.so.6
#130 0x00005555556d57d5 in  ()

 

Hopefully this helps somewhat; I won't get a chance to run it in a debugger until next week if needed.

Link to comment
Share on other sites

That's a more specific stacktrace, I'd be interested in the message that g_log_structured_array() is receiving, can you see it somewhere in the local variable/stack?

It seems to originate from gtk_scrolled_window, but maybe that's only used somewhere internally.

Can you also try to run the application with an environment variable set, maybe it prints something:

G_MESSAGES_DEBUG=all ./path/to/darkradiant
Link to comment
Share on other sites

I'm also seeing an assertion failure, although it doesn't seem to have anything in common with what other people have posted. This appears at startup before the main window is shown, and appears to be fatal (attempting to Continue just produces the same assertion again).

ASSERT INFO:
../src/aui/auibook.cpp(2270): assert "page_idx < m_tabs.GetPageCount()" failed in GetPage().

BACKTRACE:
[1] wxAuiNotebook::GetPage(unsigned long) const
[2] sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*)
[3] sigc::signal0<void, sigc::nil>::emit() const
[4] module::ModuleRegistry::loadAndInitialiseModules()
[5] radiant::Radiant::startup()
[6] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[7] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[8] wxEvtHandler::TryHereOnly(wxEvent&)
[9] wxEvtHandler::ProcessEventLocally(wxEvent&)
[10] wxEvtHandler::ProcessEvent(wxEvent&)
[11] wxEvtHandler::ProcessPendingEvents()
[12] wxApp::DoIdle()
[13] g_main_context_dispatch
[14] g_main_loop_run
[15] gtk_main
[16] wxGUIEventLoop::DoRun()
[17] wxEventLoopBase::Run()
[18] wxAppConsoleBase::MainLoop()
[19] wxEntry(int&, wchar_t**)
[20] __libc_start_main

More info from LLDB (since the built-in stacktrace seems to miss out a lot of function calls):

    frame #10: 0x00007ffff6a9eeca libwx_gtk3u_aui-3.0.so.0`wxAuiNotebook::GetPage(unsigned long) const + 106
    frame #11: 0x0000555555d4f768 darkradiant`ui::PropertyNotebook::restoreState(this=0x000055555611c490) at PropertyNotebook.cpp:264:34
    frame #12: 0x0000555555d3f7b6 darkradiant`ui::AuiLayout::restoreStateFromRegistry(this=0x0000555557179c10) at AuiLayout.cpp:654:36
    frame #13: 0x0000555555d46817 darkradiant`ui::MainFrame::construct(this=0x00005555560c53a0) at MainFrame.cpp:271:38
    frame #14: 0x0000555555d46680 darkradiant`ui::MainFrame::postModuleInitialisation(this=0x00005555560c53a0) at MainFrame.cpp:211:11
    frame #15: 0x0000555555d4c024 darkradiant`sigc::bound_mem_functor0<void, ui::MainFrame>::operator(this=0x0000555556cd1258)() const at mem_fun.h:1991:48
    frame #16: 0x0000555555d4ba80 darkradiant`sigc::adaptor_functor<sigc::bound_mem_functor0<void, ui::MainFrame> >::operator(this=0x0000555556cd1250)() const at adaptor_trait.h:256:20
    frame #17: 0x0000555555d4b22c darkradiant`sigc::internal::slot_call<sigc::bound_mem_functor0<void, ui::MainFrame>, void>::call_it(rep=0x0000555556cd1220) at slot.h:483:35
    frame #18: 0x0000555555aec9e2 darkradiant`sigc::internal::signal_emit0<void, sigc::nil>::emit(impl=0x0000555556a31300) at signal.h:798:79
    frame #19: 0x0000555555aee4a8 darkradiant`sigc::signal0<void, sigc::nil>::emit(this=0x0000555556163398) const at signal.h:2804:32
    frame #20: 0x00007fffeba2acfb libradiantcore.so`module::ModuleRegistry::loadAndInitialiseModules(this=0x0000555556163320) at ModuleRegistry.cpp:192:32
    frame #21: 0x00007fffeba8bc87 libradiantcore.so`radiant::Radiant::startup(this=0x00005555562af760) at Radiant.cpp:97:58
    frame #22: 0x0000555555be315f darkradiant`RadiantApp::onStartupEvent(this=0x00005555560a4660, ev=0x00005555562dc8d0) at RadiantApp.cpp:230:30

This is the actual line of code which fails in PropertyNotebook.cpp. It seems that existingIndex is actually -1 here.

assertion.png.1a36203343673e9c6487f7e92f422c43.png

Link to comment
Share on other sites

In the create model window, the scroll wheel does not scroll through the list. This works correctly in the create entity window, create particle window and insert prefab window.

Reproduce: right-click in 2D view and select create model and use mouse scroll wheel to scroll through list. Instead in the background the camera view zooms out.

Edited by datiswous
Link to comment
Share on other sites

22 hours ago, greebo said:

That's a more specific stacktrace, I'd be interested in the message that g_log_structured_array() is receiving, can you see it somewhere in the local variable/stack?

It seems to originate from gtk_scrolled_window, but maybe that's only used somewhere internally.

Can you also try to run the application with an environment variable set, maybe it prints something:

G_MESSAGES_DEBUG=all ./path/to/darkradiant

I don't have enough symbol information to get the value of the variables, so I won't be able to help out there until I get a chance to make a debug build.

I tried with G_MESSAGES_DEBUG=all and didn't get anything on the console either.

  • Thanks 1
Link to comment
Share on other sites

On 11/2/2022 at 9:17 PM, OrbWeaver said:

This is the actual line of code which fails in PropertyNotebook.cpp. It seems that existingIndex is actually -1 here.

assertion.png.1a36203343673e9c6487f7e92f422c43.png

I would have assumed that the assertion wouldn't fire if existingIndex == -1 since that is also < tab count. At any rate, if existingIndex == -1 at this point in the code either the addControl or findControlIndexByName seem to have failed. Can you step through it and figure out what goes wrong? Is addControl failing?

Link to comment
Share on other sites

17 hours ago, greebo said:

I would have assumed that the assertion wouldn't fire if existingIndex == -1 since that is also < tab count.

It looks like GetPageCount() and GetPage() are working with size_t indices which (on Linux) are equivalent to unsigned int, so I guess this is wrap-around behaviour.

17 hours ago, greebo said:

At any rate, if existingIndex == -1 at this point in the code either the addControl or findControlIndexByName seem to have failed. Can you step through it and figure out what goes wrong? Is addControl failing?

Yes, it's very strange that the index should be -1 immediately after the page was added — I'll do more debugging and see if I can find out which function call isn't working as expected.

  • Thanks 1
Link to comment
Share on other sites

On 11/4/2022 at 3:57 AM, greebo said:

I would have assumed that the assertion wouldn't fire if existingIndex == -1 since that is also < tab count. At any rate, if existingIndex == -1 at this point in the code either the addControl or findControlIndexByName seem to have failed. Can you step through it and figure out what goes wrong? Is addControl failing?

I've done more debugging, and it seems like it is FindPage() that is failing for reasons which are unclear. It even fails immediately after the page is added in addControl(), i.e.

    bool succ = AddPage(content, control->getDisplayName(), false, tabIconIndex);
    wxASSERT(succ); // succeeds
    wxASSERT(FindPage(content) != wxNOT_FOUND); // FAILS

I guess this means one of two things:

  1. A bug in Ubuntu's wxWidgets 3.0.x package (it wouldn't be the first time), or the GTK wxWidgets build more generally.
  2. A false assumption in our code about when/how wxAuiNotebook::FindPage() is able to work. For example, perhaps it only works once the AUI interface has actually been displayed on the screen, rather than during the setup process.

EDIT: I wonder if it is this bug: https://github.com/wxWidgets/wxWidgets/issues/15932

I can armour restoreState() against passing an invalid index to GetPage() and friends, which avoids the assertion, but then I have multiple copies of every tab in the group widget. On the other hand, I can completely disable the contents of restoreState() and everything looks fine with all tabs present and correct (although I presume any changes to tab layout wouldn't be preserved), so I wonder if it's even necessary for restoreState() to add new tabs at all?

Link to comment
Share on other sites

On 10/31/2022 at 1:48 PM, Frost_Salamander said:

I'm having this weird issue where copy/paste shader stops working properly.  It will paste the texture, but not the position/scale from where it was copied.  If you copy/paste between two surfaces with the same texture but different offset/scale, the result is it appears to just do nothing.

If I restart DR, it goes away for a while but then comes back.  Is there a setting for this anywhere?  Anyone else getting this?  Because it's random, a bug report probably wouldn't be very helpful without proper steps to reproduce.  I don't remember ever seeing this before 3.5.0.

I am having this exact issue as well. I have to restart DR periodically to keep the copy/paste shader function working properly.

Link to comment
Share on other sites

  • greebo unpinned this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


  • Recent Status Updates

    • peter_spy

      Perhaps an unpopular opinion: TDM team might benefit from someone with actual QA experience; someone with naturally and professionally developed curiosity, who is interested in how and why things work, how they break At least to me it's kind of mind-boggling how untested some rather important features are (first the absence alert feature for items, now the rope +body carry behavior).
      · 4 replies
    • nbohr1more

      The Dark Mod is hosting an Ask Me Anything thread on the PC Gaming reddit forum:  https://www.reddit.com/r/pcgaming/comments/10nfcwj/hello_we_are_the_international_development_team/
      Feel free to join the discussion there
      · 2 replies
    • stgatilov

      Bumped into an interesting piece of wisdom called Hyrum's Law:
      With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.
      · 5 replies
    • The Black Arrow

      I love playing The Dark Mod when it's cold in my place. Bonus points when it's a bit (or even very) dark and it's raining, too.
      · 2 replies
    • The Black Arrow

      I've been having stutters in Vulkan, apparently it's Nvidia Drivers' fault, so I reverted to 512 according to this: https://www.nvidia.com/en-us/geforce/forums/geforce-graphics-cards/5/505679/regular-microstutter-in-vulkan-applications-after-/?topicPage=40

      And no, that did NOT fix it. What's going on? My GPU is an RTX 2070, by the way.
      · 4 replies
×
×
  • Create New...