sirjuddington / SLADE

It's a Doom editor
https://slade.mancubus.net
GNU General Public License v2.0
698 stars 108 forks source link

TEXTUREx editor multiple issues both on Linux and Windows #1672

Open jmfergeau opened 7 months ago

jmfergeau commented 7 months ago

SLADE Version

3.2.5, 3.2.6

OS

Windows, Linux

Editor

Resource editor

Steps to Reproduce and Observed Behavior

  1. Open a wad or a folder
  2. Double-click on a texture lump
  3. On Linux, Two things might happen. Slade might just abruptly crash and close with no errors. Or if it didn't crash, the editor will work as intended but the graphical part where you can drag the elements to set the offset will not display anything. It will just display what was behind it before (or just a pitch black window) and will not be usable at all. On Windows, it doesn't crash, but the graphical part is not usable either, displaying this time a pitch red window instead.

Expected Behavior

the Texturex editor should display the window editor correctly and be fully interactive

NOTE: For the crash on linux, I found a workaround. Very weird, but it works:

  1. Open slade and open a wad or folder
  2. Open a map with the map editor
  3. Grab a linedef and attempt to click the special menu to change it
  4. An error dialog will appear. Uncheck the "show dialog next time" and click continue
  5. Cancel the special change and close the map editor
  6. Double-click the TEXTURE lump. No more crash.

Sorry if it has already been posted. I checked everywhere but haven't found anything similar.

Screenshots

The inoperant window on Windows 11

The inoperant window on Linux

jmfergeau commented 7 months ago

Some additional notes:

I noticed the zoom in and out are somehow working since it can be done using the mousewheel. But nothing displays. I suspect the checkboxes are doing the same.

The fields around the graphic interface are all working and saving the changes works. But it's very difficult to do anything when you can't see what you're doing.

UnBeatWaterGH commented 6 months ago

Here's a slightly similar issue I made in July last year: #1549

jmfergeau commented 6 months ago

Things got even worse lately.

Now not only the Start page just displays a blank window (fortunately you can still open files and folders using the menu) the TEXTUREx editor freezes entirely SLADE now...

kinker31 commented 5 months ago

I'm having the same issue on Linux, where the program instantly crashes, without even so much as a "This program crashed!" dialog box. Luckily, I was able to get it running on my terminal, and when I reproduced the bug, this is what it gave me:

01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it
01:46:01: Debug: window wxControl@0x564cfb4dec90 ("stbutton") lost focus even though it didn't have it

(slade:50390): Gdk-WARNING **: 01:46:01.931: The program 'slade' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 28145 error_code 3 request_code 148 (unknown) minor_code 3)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

I was not able to get anything else from the terminal whilst I was running the program.

MyThoughtsAreTurquoise commented 4 months ago

Same issues here. Everything else works just fine, but whenever i open a TEXTURES lump i get one of two things: texture preview window is black or a crash. luckely i get a application crash notification:

Version: 3.2.5 No current action

Operating System: Linux 5.15.0-105-generic x86_64 Graphics Vendor: OpenGL not initialised Graphics Hardware: OpenGL not initialised OpenGL Version: OpenGL not initialised

Stack Trace:

Last Log Messages: Loading game configurations SLADE Initialisation OK Can't convert "-" to an integer (invalid) Can't convert "\" to an integer (invalid) Can't convert "[" to an integer (invalid) Can't convert "[" to an integer (invalid) Opening archive /home/odysseus/modBench/Doom/export/mods/qcWeapons/004/qcWeapons4 Opening took 86 ms Setting up the OpenGL context Failed to setup the OpenGL context

On my end the crash only happens when i close the program and then try to open the TEXTURES lump for the second time. Whenever i create one, add textures to it and open it up for the first time, the program doesn't crash but then again no preview, just the UI Elements and a black preview window.

Screenshot at 2024-05-03 16-15-57

I'm using the flatpak version, platforms etc... are all up to date.

Some info about my OS:

System: Kernel: 5.15.0-105-generic x86_64 bits: 64 compiler: gcc v: 11.4.0 Desktop: Openbox 3.6.1 dm: LightDM Distro: Linux Mint 21 Vanessa base: Ubuntu 22.04 jammy

Graphics: Device-1: NVIDIA GM200 [GeForce GTX 980 Ti] vendor: Micro-Star MSI driver: nvidia v: 535.171.04 pcie: speed: 2.5 GT/s lanes: 2 ports: active: none off: HDMI-A-1 empty: DP-1, DP-2, DP-3, DVI-I-1 bus-ID: 01:00.0 chip-ID: 10de:17c8 Display: x11 server: X.Org v: 1.21.1.4 compositor: Compton v: 1 driver: X: loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa gpu: nvidia display-ID: :0 screens: 1 Screen-1: 0 s-res: 1920x1080 s-dpi: 92 Monitor-1: HDMI-0 res: 1920x1080 dpi: 92 diag: 609mm (24") OpenGL: renderer: NVIDIA GeForce GTX 980 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 535.171.04 direct render: Yes

jmfergeau commented 4 months ago

Updated to 3.2.6 and there's some new. Now, when opening a TEXTURE file, the following crash log is reported, similar to #1685 :

Version: 3.2.6
No current action

Operating System: Linux 6.9.2-zen1-1-zen x86_64
Graphics Vendor: OpenGL not initialised
Graphics Hardware: OpenGL not initialised
OpenGL Version: OpenGL not initialised

Stack Trace:
0: [unknown location] [unknown:127534448105524]
1: [unknown location] [unknown:127534350915172]
2: [unknown location] [unknown:127534421576416]
3: [unknown location] [unknown:96352725713355]
4: [unknown location] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
5: [unknown location] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
6: [unknown location] wxEvtHandler::TryHereOnly(wxEvent&)
7: [unknown location] wxEvtHandler::ProcessEventLocally(wxEvent&)
8: [unknown location] wxEvtHandler::ProcessEvent(wxEvent&)
9: [unknown location] wxEvtHandler::SafelyProcessEvent(wxEvent&)
10: [unknown location] wxWindow::GTKSendPaintEvents(_cairo*)
11: [unknown location] [unknown:127534468043246]
12: [unknown location] [unknown:127534436419541]
13: [unknown location] [unknown:127534439301320]
14: [unknown location] g_closure_invoke
15: [unknown location] [unknown:127534428474597]
16: [unknown location] [unknown:127534428409408]
17: [unknown location] g_signal_emit_valist
18: [unknown location] g_signal_emit
19: [unknown location] [unknown:127534439367106]
20: [unknown location] [unknown:127534439425475]
21: [unknown location] gtk_main_do_event
22: [unknown location] [unknown:127534435120071]
23: [unknown location] [unknown:127534435196354]
24: [unknown location] [unknown:127534435196215]
25: [unknown location] [unknown:127534435196215]
26: [unknown location] [unknown:127534435196215]
27: [unknown location] [unknown:127534435196215]
28: [unknown location] [unknown:127534435196215]
29: [unknown location] [unknown:127534435196215]
30: [unknown location] [unknown:127534435214815]
31: [unknown location] [unknown:127534435215354]
32: [unknown location] wxWindow::Update()
33: [unknown location] [unknown:127534468464323]
34: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
35: [unknown location] wxSizer::Layout()
36: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
37: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
38: [unknown location] wxSizer::Layout()
39: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
40: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
41: [unknown location] wxSizer::Layout()
42: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
43: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
44: [unknown location] wxSizer::Layout()
45: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
46: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
47: [unknown location] wxSizer::Layout()
48: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
49: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
50: [unknown location] wxSizer::Layout()
51: [unknown location] wxWindowBase::Layout()
52: [unknown location] wxAuiManager::DoFrameLayout()
53: [unknown location] wxAuiManager::OnSize(wxSizeEvent&)
54: [unknown location] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
55: [unknown location] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
56: [unknown location] wxEvtHandler::TryHereOnly(wxEvent&)
57: [unknown location] wxEvtHandler::ProcessEventLocally(wxEvent&)
58: [unknown location] wxEvtHandler::ProcessEvent(wxEvent&)
59: [unknown location] wxEvtHandler::SafelyProcessEvent(wxEvent&)
60: [unknown location] wxWindow::DoSetSize(int, int, int, int, int)
61: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
62: [unknown location] wxSizer::Layout()
63: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
64: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
65: [unknown location] wxSizer::Layout()
66: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
67: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
68: [unknown location] wxSizer::Layout()
69: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
70: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
71: [unknown location] wxSizer::Layout()
72: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
73: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
74: [unknown location] wxSizer::Layout()
75: [unknown location] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
76: [unknown location] wxBoxSizer::RepositionChildren(wxSize const&)
77: [unknown location] wxSizer::Layout()
78: [unknown location] wxWindowBase::Layout()
79: [unknown location] wxAuiManager::DoFrameLayout()
80: [unknown location] wxAuiManager::OnSize(wxSizeEvent&)
81: [unknown location] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
82: [unknown location] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
83: [unknown location] wxEvtHandler::TryHereOnly(wxEvent&)
84: [unknown location] wxEvtHandler::ProcessEventLocally(wxEvent&)
85: [unknown location] wxEvtHandler::ProcessEvent(wxEvent&)
86: [unknown location] wxEvtHandler::SafelyProcessEvent(wxEvent&)
87: [unknown location] wxWindowBase::SendSizeEvent(int)
88: [unknown location] [unknown:127534456292807]
89: [unknown location] g_closure_invoke
90: [unknown location] [unknown:127534428475471]
91: [unknown location] [unknown:127534428411356]
92: [unknown location] g_signal_emit_valist
93: [unknown location] g_signal_emit
94: [unknown location] [unknown:127534435176157]
95: [unknown location] [unknown:127534435093104]
96: [unknown location] [unknown:127534428978906]
97: [unknown location] [unknown:127534428973705]
98: [unknown location] [unknown:127534429374903]
99: [unknown location] g_main_loop_run
100: [unknown location] gtk_main
101: [unknown location] wxGUIEventLoop::DoRun()
102: [unknown location] wxEventLoopBase::Run()
103: [unknown location] wxAppConsoleBase::MainLoop()
104: [unknown location] wxEntry(int&, wchar_t**)
105: [unknown location] main
106: [unknown location] [unknown:127534421482632]
107: [unknown location] __libc_start_main
108: [unknown location] [unknown:96352721100549]

Last Log Messages:
Loading game configurations
SLADE Initialisation OK
Can't convert "-" to an integer (invalid)
Can't convert "\" to an integer (invalid)
Can't convert "[" to an integer (invalid)
Can't convert "[" to an integer (invalid)
Opening directory /home/max/Documents/yumedoom as archive
Opening took 9833 ms
Setting up the OpenGL context
Failed to setup the OpenGL context

It seems to not find openGL. Though it's installed. (i use mesa drivers)

(Also the problem with the Start page not loading is still there)

sirjuddington commented 4 months ago

What version of wxWidgets is it built with? Should say in the console log. I think there might be some issue with the version of wx that the flatpak SLADE is built with

jmfergeau commented 4 months ago

I don't use flatpak. I build slade using AUR. Here in this case I compiled slade manually since AUR is not up-to-date yet.

I use wxwidgets v3.2.5

I'm going to try the flatpak version though, just to check.

EDIT: well, same problem, both with the start page (becoming pitch black though, instead of just empty) and same error with TEXTURE lump.

jmfergeau commented 3 months ago

I switched to debian for multiple reasons but still same problem in there. I use the flatpak version. (and the crash handler also crashes :| )

jmfergeau commented 2 months ago

I switched from flatpak to the debian package available in the drd repos. And all the problems i mentionned got fixed. Start page works again and no issues at all when editing TEXTUREx.

So, tempoprary fix: use Debian and install Slade using the debian drd repo. :man_shrugging:

Note though: The debian package version needs the libwebkit2gtk-4.0-37 dependency thought it won't be install with slade. libwebkit2gtk-4.1 is released but not detected and used by slade. (for reasons?)

Blzut3 commented 2 months ago

Compatibility with all currently supported versions of Debian and Ubuntu. That said the latest package should have binaries for both (it would be possible to make a single universal binary but I don't really feel like going that deep into dependency building). Which is used is determined by /usr/bin/slade by running:

ldconfig -N -p | awk '$1 == "libwebkit2gtk-4.1.so.0"'

Does this return nothing for you?

jmfergeau commented 2 months ago
ldconfig -N -p | awk '$1 == "libwebkit2gtk-4.1.so.0"'

Does this return nothing for you?

It returns me this:

        libwebkit2gtk-4.1.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0
Blzut3 commented 2 months ago

That's the expected output, so it should be running the 4.1 binary.

jmfergeau commented 2 months ago

And yet, if i launch slade without libwebkit2gtk-4.0, i get this and it doesn't run:

/usr/bin/slade: 4: ldconfig: not found
/usr/share/slade/slade.legacy: error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory
Blzut3 commented 2 months ago

You edited out your note about ldconfig needing to specifically be /sbin/ldconfig. Did you have new information or what that still valid?

I can change the script to specifically call /sbin/ldconfig in the next build, but Ubuntu definitely puts /sbin in the PATH by default. A bit surprised Debian would differ there. You can modify /usr/bin/slade accordingly in the mean time, apt should unconditionally overwrite the file on package upgrade.

jmfergeau commented 2 months ago

Ubuntu might do that but pure Debian definitely doesn't add sbin in $PATH for non-root users by default since version 10. Because they expect all the programs in there to be able to run as root only. (Except it's not true. For instance you can do mkfs.msdos to make a floppy image file without the need to be root) But well, Debian is Debian. :man_shrugging:

So yeah maybe it would be relevant to add /sbin/ in next build, just in case other pure Debian or pure Debian-based users uses Slade (I can't be the only one on the whole planet, eh? :p )

SkullGamer205 commented 2 months ago

uname -a

Linux SkullGamer205-PC 6.9.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 12 Jun 2024 20:17:17 +0000 x86_64 GNU/Linux

wxWidgets ver: 3.2.5-1 Slade ver: 3.2.6-2

On X11 (AwesomeWM): Slade crashes after open TEXTUREx editor On Wayland (Weston): Works, but with black screen. See below photo_2024-07-31_20-59-52

photo_2024-07-31_20-59-57

SkullGamer205 commented 2 months ago

uname -a

Linux SkullGamer205-PC 6.9.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 12 Jun 2024 20:17:17 +0000 x86_64 GNU/Linux

wxWidgets ver: 3.2.5-1 Slade ver: 3.2.6-2

On X11 (AwesomeWM): Slade crashes after open TEXTUREx editor On Wayland (Weston): Works, but with black screen. See below photo_2024-07-31_20-59-52

photo_2024-07-31_20-59-57

Black screen also show on X11 with nvidia (i.e prime slade), but after several seconds Slade crashed. изображение