Closed XXXBold closed 3 years ago
Hi, @XXXBold !
Thanks for bug-report. There is 3 possible reasons:
WARNING: radv is not a conformant vulkan implementation, testing use only.
May I ask you to run the game with validation layers? Basically you need to define layers path, before starting the game:
export VK_LAYER_PATH=${VK_SDK_PATH}\Bin
./Gothic2Notr.sh -v [...]
Thanks!
Thanks for your response!
I've tried to run with Vulkan validation layers, but seems I didn't succeed (No more output on terminal than before I think). I downloaded the latest SDK(1.2.170.0) from here: https://vulkan.lunarg.com/sdk/home#linux Set up environment like explained here: https://vulkan.lunarg.com/doc/view/1.1.114.0/linux/getting_started.html ("Set up the runtime environment"- )
In short:
export VULKAN_SDK=~/vulkan/1.1.xx.y/x86_64 (Well, replaced with my path ofc)
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d
And run the game again: ./Gothic2Notr.sh -window -v -g /media/ssd2tb/Games/SteamLibrary/steamapps/common/Gothic
Output:
no *.ini file in path - using default settings
AL lib: (EE) ALSANoMMapProc: available update failed: Broken pipe
WARNING: radv is not a conformant vulkan implementation, testing use only.
GPU = AMD RADV HAWAII (ACO)
Depth format = 13 Shadow format = 5
Info: ZEN: Reading world...
Info: oCWorld reading chunk: MeshAndBsp
Info: ZEN: Reading mesh...
Info: Reading mesh '' (Version: 9)
Info: Found 55439 vertices
Info: ZEN: Done reading mesh!
Info: oCWorld reading chunk: VobTree
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: oCWorld reading chunk: WayNet
Info: Loading 20 freepoints
Info: Loading 3500 edges
Info: Done loading edges!
unable to load animation sequence: "PILLAR_7M-s_S1.MAN"
unable to load animation sequence: "PILLAR_7M-t_S1_2_S0.MAN"
unable to load sound fx: wood_night2
Info: Reading 7360 blocks
I cannot see anything more helpful here. Is there a log generated somewhere? Sorry, not familiar with vulkan.
BTW, WARNING: radv is not a conformant vulkan implementation, testing use
is just a meaningless, general warning. But with the driver bug you could be right, I'm using oibaf's PPA: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers to always have up-to-date drivers. Is there a way to check if this is the case?
Thanks for log with validation :)
The line VulkanApi: no validation layers available
was in your first log, but absent in last one, meaning validation layer is active, just no engine-level errors were detected.
Is there a way to check if this is the case?
Validation layer is the best thing we can have for this case. You may also try to run game with gdb
to see the call-stack of loader thread, to be extra sure.
I tried to debug the game. Set up environment the same as before (With the vulkan validation layers), and additional set:
export DEBUGGER=/usr/bin/gdb
before starting, with the same command as before:
/home/simon/Downloads/og/OpenGothic/build/opengothic/Gothic2Notr.sh -window -v -g /media/ssd2tb/Games/SteamLibrary/steamapps/common/Gothic
GDB started up:
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/simon/Downloads/og/OpenGothic/build/opengothic/Gothic2Notr...
I typed gdb run
, which made the game start. I selected "New Game" than, as before. As soon as the game was hanging, I used CTRL+C on the Terminal, which stopped the debugging. This is the output:
(gdb) run
Starting program: /home/simon/Downloads/og/OpenGothic/build/opengothic/Gothic2Notr -window -v -g /media/ssd2tb/Games/SteamLibrary/steamapps/common/Gothic
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff2727700 (LWP 115985)]
[New Thread 0x7ffff1f26700 (LWP 115986)]
no *.ini file in path - using default settings
AL lib: (EE) ALSANoMMapProc: available update failed: Broken pipe
[New Thread 0x7fffe1cda700 (LWP 116005)]
[New Thread 0x7fffe14d9700 (LWP 116006)]
[New Thread 0x7fffe0cd8700 (LWP 116007)]
[New Thread 0x7fffd6849700 (LWP 116008)]
WARNING: radv is not a conformant vulkan implementation, testing use only.
[New Thread 0x7fffd5046700 (LWP 116009)]
[New Thread 0x7fffd4845700 (LWP 116010)]
GPU = AMD RADV HAWAII (ACO)
Depth format = 13 Shadow format = 5
[Thread 0x7fffd4845700 (LWP 116010) exited]
[New Thread 0x7fffd4845700 (LWP 116011)]
[New Thread 0x7fffbffff700 (LWP 116193)]
[New Thread 0x7fffbe438700 (LWP 116284)]
Info: ZEN: Reading world...
Info: oCWorld reading chunk: MeshAndBsp
Info: ZEN: Reading mesh...
Info: Reading mesh '' (Version: 9)
Info: Found 55439 vertices
Info: ZEN: Done reading mesh!
Info: oCWorld reading chunk: VobTree
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: skip: "8"
Info: oCWorld reading chunk: WayNet
Info: Loading 20 freepoints
Info: Loading 3500 edges
Info: Done loading edges!
unable to load animation sequence: "PILLAR_7M-s_S1.MAN"
unable to load animation sequence: "PILLAR_7M-t_S1_2_S0.MAN"
unable to load sound fx: wood_night2
Info: Reading 7360 blocks
^C
Thread 1 "Gothic2Notr" received signal SIGINT, Interrupt.
0x00007ffff74953bf in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7fffffff9ca0, rem=rem@entry=0x7fffffff9ca0)
at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
78 ../sysdeps/unix/sysv/linux/clock_nanosleep.c: Datei oder Verzeichnis nicht gefunden.
To print some more information, I used gdb where
, which prints out:
(gdb) where
#0 0x00007ffff74953bf in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7fffffff9ca0,
rem=rem@entry=0x7fffffff9ca0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1 0x00007ffff749b047 in __GI___nanosleep (requested_time=requested_time@entry=0x7fffffff9ca0, remaining=remaining@entry=0x7fffffff9ca0) at nanosleep.c:27
#2 0x00007ffff7a6c385 in std::this_thread::sleep_for<long, std::ratio<1l, 1000l> > (__rtime=...) at /usr/include/c++/9/thread:378
#3 Tempest::Application::sleep (msec=<optimized out>) at /home/simon/Downloads/og/OpenGothic/lib/Tempest/Engine/system/application.cpp:65
#4 0x000055555570048d in MainWindow::render (this=0x7fffffffbc40) at /home/simon/Downloads/og/OpenGothic/Game/mainwindow.cpp:903
#5 0x00007ffff7a6b89e in Tempest::X11Api::implProcessEvents (this=0x7ffff7d54db0 <Tempest::SystemApi::inst()::api>, cb=...)
at /home/simon/Downloads/og/OpenGothic/lib/Tempest/Engine/system/api/x11api.cpp:440
#6 0x00007ffff7a6b134 in Tempest::X11Api::implExec (this=0x7ffff7d54db0 <Tempest::SystemApi::inst()::api>, cb=...)
at /home/simon/Downloads/og/OpenGothic/lib/Tempest/Engine/system/api/x11api.cpp:329
#7 0x0000555555625e79 in main (argc=<optimized out>, argv=<optimized out>) at /home/simon/Downloads/og/OpenGothic/Game/main.cpp:64
I hope this might be helpful for you. If you can give me more detailed instructions how to debug, I could provide more information if required.
Hi @XXXBold ! Thanks for a passion and a backtrace :) Thing is: OpenGothic do loading in background thread, what you see in gdb, by default, is main thread - there is nothing going on there.
This is how loader-thread looks like on my machine(sorry - no thread names):
1 std::__detail::_Node_iterator<std::pair<std::pair<unsigned int, unsigned int> const, unsigned int>, false, false>::_Node_iterator hashtable_policy.h 354 0x6cfcfc
2 std::_Hashtable<std::pair<unsigned int, unsigned int>, std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>, std::allocator<std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>>, std::__detail::_Select1st, std::equal_to<std::pair<unsigned int, unsigned int>>, PackedMesh::pack(const ZenLoad::zCMesh&, PackedMesh::PkgType)::Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>>::end(void) hashtable.h 491 0x489900
3 std::_Hashtable<std::pair<unsigned int, unsigned int>, std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>, std::allocator<std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>>, std::__detail::_Select1st, std::equal_to<std::pair<unsigned int, unsigned int>>, PackedMesh::pack(const ZenLoad::zCMesh&, PackedMesh::PkgType)::Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>>::find(const std::_Hashtable<std::pair<unsigned int, unsigned int>, std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>, std::allocator<std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>>, std::__detail::_Select1st, std::equal_to<std::pair<unsigned int, unsigned int>>, PackedMesh::pack(const ZenLoad::zCMesh&, PackedMesh::PkgType)::Hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>>::key_type &) hashtable.h 1308 0x4898db
4 std::unordered_map<std::pair<unsigned int, unsigned int>, unsigned int, PackedMesh::pack(const ZenLoad::zCMesh&, PackedMesh::PkgType)::Hash, std::equal_to<std::pair<unsigned int, unsigned int>>, std::allocator<std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>>>::find(const std::unordered_map<std::pair<unsigned int, unsigned int>, unsigned int, PackedMesh::pack(const ZenLoad::zCMesh&, PackedMesh::PkgType)::Hash, std::equal_to<std::pair<unsigned int, unsigned int>>, std::allocator<std::pair<const std::pair<unsigned int, unsigned int>, unsigned int>>>::key_type &) unordered_map.h 615 0x4896b1
5 PackedMesh::pack packedmesh.cpp 85 0x488a1f
6 PackedMesh::PackedMesh packedmesh.cpp 40 0x488600
7 DynamicWorld::DynamicWorld dynamicworld.cpp 451 0x4a6b1f
8 World::World(Gothic&, GameSession&, RendererStorage const&, std::string, std::function<void (int)>) world.cpp 45 0x4ebbb1
9 GameSession::GameSession gamesession.cpp 65 0x451cba
10 MainWindow::<lambda(std::unique_ptr<GameSession, std::default_delete<GameSession>>&&)>::operator()(<unknown type in D:rogrammingpenGothicuildpengothicothic2Notr.exe, CU 0x8db3263, DIE 0x915f4f0>) const mainwindow.cpp 758 0x4a3d27
11 std::_Function_handler<std::unique_ptr<GameSession, std::default_delete<GameSession>>(std::unique_ptr<GameSession, std::default_delete<GameSession>>&&), MainWindow::startGame(const string&)::<lambda(std::unique_ptr<GameSession, std::default_delete<GameSession>>&&)>>::_M_invoke(const std::_Any_data &, <unknown type in D:rogrammingpenGothicuildpengothicothic2Notr.exe, CU 0x8db3263, DIE 0x9164f36>) functional 1857 0x4a51f6
12 std::function<std::unique_ptr<GameSession, std::default_delete<GameSession>> (std::unique_ptr<GameSession, std::default_delete<GameSession>>&&)>::operator()(std::unique_ptr<GameSession, std::default_delete<GameSession>>&&) const functional 2271 0x62ca63
13 Gothic::<lambda()>::operator()(void) const gothic.cpp 359 0x463fd8
14 std::_Bind_simple<Gothic::implStartLoadSave(const char *, bool, std::function<std::unique_ptr<GameSession>(std::unique_ptr<GameSession>&&)>)::<lambda()>()>::_M_invoke<>(std::_Index_tuple<>) functional 1531 0x46ca55
15 std::_Bind_simple<Gothic::implStartLoadSave(const char *, bool, std::function<std::unique_ptr<GameSession>(std::unique_ptr<GameSession>&&)>)::<lambda()>()>::operator()(void) functional 1520 0x46c9e4
16 std::thread::_Impl<std::_Bind_simple<Gothic::implStartLoadSave(const char *, bool, std::function<std::unique_ptr<GameSession>(std::unique_ptr<GameSession>&&)>)::<lambda()>()>>::_M_run(void) thread 115 0x46c998
17 libstdc++-6!execute_native_thread_routine 0x6fefb42f
18 pthread_create_wrapper 0x1ec049
19 msvcrt!_beginthreadex 0x75856cff
20 msvcrt!_endthreadex 0x75856dc1
Since the game is hanging, it's safe to assume that you will see in backtrace vkWaitForFences
, or something like that.
Maybe language specific? German Gothic 1 from steam does hang on new game for me too. Windows build from here. Error will be passed later.
EDIT:
---crashlog(ExceptionFilter)---
GPU: NVIDIA GeForce RTX 2080
0x00007ff67680ddfa: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67680c0c6: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67680c292: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ffdceffb7c7: UnhandledExceptionFilter in C:\WINDOWS\System32\KERNELBASE.dll
0x00007ffdd1595170: memset in C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffdd157c776: _C_specific_handler in C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffdd159207f: _chkstk in C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffdd1541454: RtlRaiseException in C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffdd1590bae: KiUserExceptionDispatcher in C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffd962d7475: _threadid in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ffd962d7613: _threadid in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ffd962ed86d: abort in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ffd962f30bf: get_wide_winmain_command_line in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ffd962f10b8: get_wide_winmain_command_line in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ffd962f3a1f: wassert in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ff6768b7f96: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff6768b7ec3: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff6765c9a9f: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff6765c95bf: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67663997d: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff676772101: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67676df54: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67676c344: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff6767734d3: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67668c5e1: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff67668b2d5: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff676686208: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ff676681056: PHYSFS_utf8ToUtf16 in C:\Users\Daniel\Desktop\opengothic_win\Gothic2Notr.exe
0x00007ffd962f4c7c: register_onexit_function in C:\WINDOWS\SYSTEM32\ucrtbased.dll
0x00007ffdd0327034: BaseThreadInitThunk in C:\WINDOWS\System32\KERNEL32.DLL
0x00007ffdd1542651: RtlUserThreadStart in C:\WINDOWS\SYSTEM32\ntdll.dll
Same issue here. Is Gothic 1 even supported?
GPU = NVIDIA GeForce RTX 3080 Depth format = 14 Shadow format = 5 Info: ZEN: Reading world... Info: oCWorld reading chunk: MeshAndBsp Info: ZEN: Reading mesh... Info: Reading mesh '' (Version: 9) Info: Found 55439 vertices Info: ZEN: Done reading mesh! Info: oCWorld reading chunk: VobTree Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: skip: "8" Info: oCWorld reading chunk: WayNet Info: Loading 20 freepoints Info: Loading 3500 edges Info: Done loading edges! unable to load sound fx: wood_night2 Info: Reading 7360 blocks
Maybe language specific? German Gothic 1 from steam does hang on new game for me too...
Well, I can confirm that I'm also using the German version of Gothic from Steam. Could probably be right. Edit: Yeah, seems that this is the issue. Changed the language to English and updated the files. Now I'm able to see the intro sequence, however, after that, the game crashed. But I think I'll open a new issue for that.
Just installed a german version - can confirm that there is a problem with that one (asset on my side, but still).
Same issue here. Is Gothic 1 even supported?
Strictly speaking - no, it's not, only Gothic2. But I'll still will take a look into.
Should be fixed now
Fixed here. Still some stuff which I never saw in GII (like the cut off subs in the Diego helps you sequence), but as you said, no GI support right now in theory. So thx very much for fixing this one :D
I tried to run Gothic 1 as well. When starting the game, I cannot walk anywhere and Diego is not starting the dialog, thus the game does not really run (similar to the comments given by others). I can look around, though, open the character menu and other things but no moving allowed. Running following configuration:
It does the same when running with any mod, e.g. definitive edition. Disabling ray tracing or meshlets has no effect. Weather effects also disabled. Gothic 2 does run smoothly though.
The OpenGothic output says following after the initial video finished:
not implemented call [mdl_applyrandomani]
not implemented call [mdl_applyrandomanifreq]
not implemented call [NPC_HASREADIEDWEAPON]
not implemented call [AI_LOOKAT]
Any ideas?
Did not tinker with GI a while now, but yes... When a NPC tries to initiate a conversation it does .... things to the hero. Like your almost impossible to move. Marvin'ed out of the focus of Diego fixes that... until the next NPC wants to talk.
Description
I've built the OpenGothic according to the instructions on readme page without issues (using latest master).
I can start the game, using the following command:
./Gothic2Notr.sh -window -v -g /media/ssd2tb/Games/SteamLibrary/steamapps/common/Gothic
This opens the window, the music starts playing, everything until here seems to work fine.When I select "New Game", the loading screen appears, but it just keeps hanging there (Music keeps playing) and one CPU-Core goes up to 100%.
I can bring up the menu again hitting ESC and select to quit the game, but it keeps hanging then (Music stops playing after this, though) and the CPU-Core stays on 100%. I have to quit the game using CTRL+C in the terminal.
If I'm doing anything wrong or more information is needed, let me know.
Console output
Systeminfo
I'm using Linux Mint 20.1 (Based on Ubuntu 20.04). inxi -Fxz output: