Thread: Linux Testing
-
November 2nd, 2021, 10:42 #601
-
November 2nd, 2021, 10:44 #602
- Join Date
- Jul 2021
- Posts
- 5
What do you have set for $GDK_BACKEND ? It won't hurt anything to try it anyway, not sure if Plasma defaults to Wayland in newer Fedora or not.
-
November 2nd, 2021, 15:32 #603
I found:
https://fedoraproject.org/wiki/Chang...faultForPlasma
Which indicates: "Change the default session selection in SDDM to prefer the Wayland-based KDE Plasma Desktop session over the X11-based one."
So tonight I will give this a test and report back. Thanks!
-
November 2nd, 2021, 16:54 #604
Supreme Deity
- Join Date
- Mar 2007
- Posts
- 20,566
@WilliamRiddle,
@nephranka,
I'm not able to get this to crash in my Ubuntu 18 VM.
Can you grab the Player.log for the Unity player after a crash and provide here?
(Located at ~/.config/unity3d/SmiteWorks/Fantasy Grounds/Player.log)
Thanks,
JPG
-
November 2nd, 2021, 22:13 #605
- Join Date
- Jul 2021
- Posts
- 5
Hi JPG,
Ubuntu 18 does not use a Wayland session, so you will be unlikely to recreate this issue in that VM.
Ubuntu 21.04+, Fedora, Debian, Manjaro and RHEL have all switched to Wayland as the default GNOME session.
As I said previously, FGU nor Unity provide any logs of the crash event. I dug into a coredump and performed a backtrace:
Code:#0 0x00007fbe54f0de72 in XDefaultRootWindow () at /usr/lib64/libX11.so.6 #1 0x00007fbd9b14fbe8 in getWindowFromPid () at /home/username/.smiteworks/fantasygrounds/FantasyGrounds_Data/Plugins/libFileBrowser.so #2 0x00007fbd9b14fccb in getUnityWindow () at /home/username/.smiteworks/fantasygrounds/FantasyGrounds_Data/Plugins/libFileBrowser.so #3 0x00007fbd9b14ff4d in GTKOpenPanel () at /home/username/.smiteworks/fantasygrounds/FantasyGrounds_Data/Plugins/libFileBrowser.so #4 0x00007fbd9b14fe7a in DialogOpenFilePanelAsync () at /home/username/.smiteworks/fantasygrounds/FantasyGrounds_Data/Plugins/libFileBrowser.so
I think an interim solution would be to explicitly setCode:GDK_BACKEND=x11
Hope this helps.
-
November 2nd, 2021, 23:29 #606
-
November 2nd, 2021, 23:47 #607
Supreme Deity
- Join Date
- Mar 2007
- Posts
- 20,566
I'm not seeing anything in the Player.log other than a normal startup and normal shutdown. Did you pull the Player.log immediately after the crash, or did you restart FGU before pulling the log?
@kholdstare,
I'm not familiar where that flag would need to be placed or used on a Linux installation, so that it would work in both Ubuntu 18 as well as 20/21. I would not want to add any alternate launchers, if at all possible to avoid support and user confusion. Do you have more information on how this needs to be setup, or a web page where I can read more?
(Note, we use Unity game engine as well as some asset libraries to offer functionality, and do not consider ourselves experts on Linux by any means.)
Thanks,
JPG
-
November 3rd, 2021, 00:07 #608
-
November 3rd, 2021, 00:19 #609
- Join Date
- Jul 2021
- Posts
- 5
@JPG,
Happy to help out with the Linux side as much as you need.
It appears (from a rough guess) that FGU is using Unity Standalone File Browser to provide access to common controls (such as opening and saving files) across both Windows and Linux.
By the looks of it, it also uses GTK internally for Linux compatibility, falling back on the standard GTK3+ library which is common across pretty much all desktops.
The GDK_BACKEND variable essentially tells the toolkit which display backend to use, i.e. how to interact with the desktop. Normally this should automatically select Wayland if it's available or X11 if that's in use.
In this case, when FGU is running in a Wayland session, the StandaloneFileBrowserModule calls back to GTK using the X11 backend, but FGU isn't actually running in X11. So GTK goes off to fetch a file dialog using X11 (you can see this in the above stacktrace), but there's nothing to answer its messages so it dies and takes down Unity with it.
We can assume that the module, even though it uses GTK3+ which does support Wayland, is hard-coded to assume the program is running in X11 - the code is quite old now so it makes sense to assume X11 anyway.
By setting the GDK_BACKEND variable to x11 before launching FGU, this essentially tells the window manager (i.e. Gnome or KDE) to run the program explicitly in X11 mode, so the GTK library is able to utilise the legacy X11 code paths to do things like display a file browser.
Out of the box, all standard desktops and distros running Wayland will spin up a special compatibility layer called XWayland, i.e. the program runs seamlessly under Wayland with no effort needed on the user's part, but thinks it's running in a normal X11 session.
Forcing FGU to use x11 will have no effect for users on Ubuntu 18.04 (since it's X11 anyway). For users on Wayland desktops, it should "just work". High DPI users may have problems with XWayland and scaling, but since FGU has scaling internally this may only make the file browser itself blurry.
Let me know if you want any more info!
Cheers.
-
November 3rd, 2021, 01:53 #610
Supreme Deity
- Join Date
- Mar 2007
- Posts
- 20,566
We are using the Crosstales FileBrowser Pro asset from the Unity store (which may be repackaged from that GitHub or derived from similar/same source). It looks like they have a newer version of the library, so I'll see if I can get the latest version first to try out before trying to override any OS variables. I'm checking with my developers to see who added it, so I can get the latest version to try. Once I get it, I'll try posting a new version for you guys to try in the Dev channel.
Also, the Unity player log did catch the fatal signal directly without any other tools needed:
Caught fatal signal - signo:11 code:1 errno:0 addr:0xffffffd306358b90
Obtained 7 stack frames.
#0 0x007f43746d1a20 in funlockfile
#1 0x007f4373bbfcd6 in XDefaultRootWindow
#2 0x007f42a6e7dbe8 in getWindowFromPid
#3 0x007f42a6e7dccb in getUnityWindow
#4 0x007f42a6e7df4d in GTKOpenPanel
#5 0x007f42a6e7de7a in DialogOpenFilePanelAsync
#6 0x0000004103e0a4 in (wrapper managed-to-native) Crosstales.FB.Wrapper.Linux.NativeMethodsialogOpenFilePanelAsync (string,string,string,bool,Crosstales.FB.Wrapper.L inux.NativeMethods/AsyncCallback)
Regards,
JPG
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks