Difference between revisions of "RUINER"
Jump to navigation
Jump to search
(Linux memory leak has been fixed.) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 20: | Line 20: | ||
** '''Snapdragon needs retesting!''' | ** '''Snapdragon needs retesting!''' | ||
− | === Slow in-game === | + | === Slow in-game on Linux version === |
− | Game | + | The Linux port of the game is creating and destroy threads at upwards of 720 threads per second. This is causing the game to run very slowly because thread creation under FEX is relatively heavy. |
− | * | + | * Caused by some VLC playback library? Game is creating and destroying a VLC object on every engine tick. |
+ | * Recommended to use the Proton version until FEX's thread creation is faster and/or code sharing between threads is supported. | ||
+ | |||
+ | (gdb) bt | ||
+ | #0 __pthread_create_2_1 (newthread=0x94e43b0, attr=0x7ffe3f3886f0, start_routine=0x7205e1856620 <Run>, arg=0x94e3b50) at ./nptl/pthread_create.c:626 | ||
+ | #1 0x00007205e189d03d in vlc_clone_attr (th=0x94e43b0, attr=0x7ffe3f3886f0, entry=0x7205e1856620 <Run>, data=0x94e3b50, priority=<optimized out>) at posix/thread.c:482 | ||
+ | #2 0x00007205e189cf06 in vlc_clone (th=0x94e43b0, entry=0x7205e1856620 <Run>, data=0x94e3b50, priority=10) at posix/thread.c:494 | ||
+ | #3 0x00007205e18565a2 in input_Start (p_input=0x94e3b50) at input/input.c:183 | ||
+ | #4 0x00007205e1411766 in libvlc_media_player_play (p_mi=0x851bd00) at media_player.c:1008 | ||
+ | #5 0x0000000004d2b081 in FVlcMediaPlayer::SetRate (this=0x7205b6721e40, Rate=<optimized out>) at E:\repo\Plugins\VlcMedia\Source\VlcMedia\Private\Player/VlcMediaPlayer.cpp:177 | ||
+ | #6 0x0000000004d2cf3e in FVlcMediaPlayer::TickPlayer (this=0x7205b6721e40, DeltaTime=<optimized out>) at E:\repo\Plugins\VlcMedia\Source\VlcMedia\Private\Player/VlcMediaPlayer.cpp:453 | ||
+ | #7 0x00000000040ccea1 in UMediaPlayer::Tick (this=0x72065f819580, DeltaTime=2.84558105) at E:\engine\Engine\Source\Runtime\MediaAssets\Private\Assets/MediaPlayer.cpp:729 | ||
+ | #8 0x00000000040cd34a in non-virtual thunk to UMediaPlayer::Tick(float) (this=0x94e43b0, DeltaTime=0) at E:\engine\Engine\Source\Runtime\MediaAssets\Private\Assets/MediaPlayer.cpp:747 | ||
+ | #9 0x00000000020ac62e in TBaseDelegate<bool, float>::Execute (this=<optimized out>, Params=2.84558105) at E:\engine\Engine\Source\Runtime\Core\Public\Delegates/DelegateSignatureImpl.inl:537 | ||
+ | #10 FTicker::FElement::Fire (this=<optimized out>, DeltaTime=<optimized out>) at E:\engine\Engine\Source\Runtime\Core\Private\Containers/Ticker.cpp:115 | ||
+ | #11 FTicker::Tick (this=0x693c260 <FTicker::GetCoreTicker()::Singleton>, DeltaTime=<optimized out>) at E:\engine\Engine\Source\Runtime\Core\Private\Containers/Ticker.cpp:82 | ||
+ | #12 0x0000000001e5e365 in FEngineLoop::Tick (this=0x6887a40 <GEngineLoop>) at E:\engine\Engine\Source\Runtime\Launch\Private/LaunchEngineLoop.cpp:3263 | ||
+ | #13 0x0000000001e5ec5a in EngineTick () at E:\engine\Engine\Source\Runtime\Launch\Private/Launch.cpp:62 | ||
+ | #14 GuardedMain (CmdLine=<optimized out>) at E:\engine\Engine\Source\Runtime\Launch\Private/Launch.cpp:176 | ||
+ | #15 0x000000000411f4a8 in CommonLinuxMain (argc=<optimized out>, argv=<optimized out>, RealMain=<optimized out>) at E:\engine\Engine\Source\Runtime\Linux\LinuxCommonStartup\Private/LinuxCommonStartup.cpp:236 | ||
+ | #16 0x00007206ace2a3b8 in __libc_start_call_main (main=main@entry=0x1e62cb0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7ffe3f388e98) at ../sysdeps/nptl/libc_start_call_main.h:58 | ||
+ | #17 0x00007206ace2a47b in __libc_start_main_impl (main=0x1e62cb0 <main(int, char**)>, argc=2, argv=0x7ffe3f388e98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe3f388e88) at ../csu/libc-start.c:360 | ||
+ | #18 0x0000000001e59868 in _start () | ||
+ | |||
+ | === Movie rendering problems on the Linux version === | ||
+ | The title screen, transition from title screen, and cutscenes in certain dialogue options are all movies. On Windows these are all using bink videos and render fine in Proton. | ||
+ | The Linux version uses a VLC playback mechanism as part of Unreal's '''UMediaPlayer''' object, while the format still being in bink. | ||
+ | These movies don't render correctly even on an x86 device, so it is an application bug. | ||
== Testing Results == | == Testing Results == |
Latest revision as of 00:05, 3 May 2025
RUINER

Storefronts | ||
Operating Systems | Windows, Linux | |
Engine | Unreal Engine 4 | |
Architecture | x86-64 | |
CPU Features Used | Unknown | |
Compatibility | Playable | |
Type | Game | |
Render API | OpenGL |
Steps to Run
No special instructions
Quirks
Problems/Workarounds
- Crashes early on with Snapdragon 888 and Freedreno
- Zink untested
- Snapdragon needs retesting!
Slow in-game on Linux version
The Linux port of the game is creating and destroy threads at upwards of 720 threads per second. This is causing the game to run very slowly because thread creation under FEX is relatively heavy.
- Caused by some VLC playback library? Game is creating and destroying a VLC object on every engine tick.
- Recommended to use the Proton version until FEX's thread creation is faster and/or code sharing between threads is supported.
(gdb) bt #0 __pthread_create_2_1 (newthread=0x94e43b0, attr=0x7ffe3f3886f0, start_routine=0x7205e1856620 <Run>, arg=0x94e3b50) at ./nptl/pthread_create.c:626 #1 0x00007205e189d03d in vlc_clone_attr (th=0x94e43b0, attr=0x7ffe3f3886f0, entry=0x7205e1856620 <Run>, data=0x94e3b50, priority=<optimized out>) at posix/thread.c:482 #2 0x00007205e189cf06 in vlc_clone (th=0x94e43b0, entry=0x7205e1856620 <Run>, data=0x94e3b50, priority=10) at posix/thread.c:494 #3 0x00007205e18565a2 in input_Start (p_input=0x94e3b50) at input/input.c:183 #4 0x00007205e1411766 in libvlc_media_player_play (p_mi=0x851bd00) at media_player.c:1008 #5 0x0000000004d2b081 in FVlcMediaPlayer::SetRate (this=0x7205b6721e40, Rate=<optimized out>) at E:\repo\Plugins\VlcMedia\Source\VlcMedia\Private\Player/VlcMediaPlayer.cpp:177 #6 0x0000000004d2cf3e in FVlcMediaPlayer::TickPlayer (this=0x7205b6721e40, DeltaTime=<optimized out>) at E:\repo\Plugins\VlcMedia\Source\VlcMedia\Private\Player/VlcMediaPlayer.cpp:453 #7 0x00000000040ccea1 in UMediaPlayer::Tick (this=0x72065f819580, DeltaTime=2.84558105) at E:\engine\Engine\Source\Runtime\MediaAssets\Private\Assets/MediaPlayer.cpp:729 #8 0x00000000040cd34a in non-virtual thunk to UMediaPlayer::Tick(float) (this=0x94e43b0, DeltaTime=0) at E:\engine\Engine\Source\Runtime\MediaAssets\Private\Assets/MediaPlayer.cpp:747 #9 0x00000000020ac62e in TBaseDelegate<bool, float>::Execute (this=<optimized out>, Params=2.84558105) at E:\engine\Engine\Source\Runtime\Core\Public\Delegates/DelegateSignatureImpl.inl:537 #10 FTicker::FElement::Fire (this=<optimized out>, DeltaTime=<optimized out>) at E:\engine\Engine\Source\Runtime\Core\Private\Containers/Ticker.cpp:115 #11 FTicker::Tick (this=0x693c260 <FTicker::GetCoreTicker()::Singleton>, DeltaTime=<optimized out>) at E:\engine\Engine\Source\Runtime\Core\Private\Containers/Ticker.cpp:82 #12 0x0000000001e5e365 in FEngineLoop::Tick (this=0x6887a40 <GEngineLoop>) at E:\engine\Engine\Source\Runtime\Launch\Private/LaunchEngineLoop.cpp:3263 #13 0x0000000001e5ec5a in EngineTick () at E:\engine\Engine\Source\Runtime\Launch\Private/Launch.cpp:62 #14 GuardedMain (CmdLine=<optimized out>) at E:\engine\Engine\Source\Runtime\Launch\Private/Launch.cpp:176 #15 0x000000000411f4a8 in CommonLinuxMain (argc=<optimized out>, argv=<optimized out>, RealMain=<optimized out>) at E:\engine\Engine\Source\Runtime\Linux\LinuxCommonStartup\Private/LinuxCommonStartup.cpp:236 #16 0x00007206ace2a3b8 in __libc_start_call_main (main=main@entry=0x1e62cb0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7ffe3f388e98) at ../sysdeps/nptl/libc_start_call_main.h:58 #17 0x00007206ace2a47b in __libc_start_main_impl (main=0x1e62cb0 <main(int, char**)>, argc=2, argv=0x7ffe3f388e98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe3f388e88) at ../csu/libc-start.c:360 #18 0x0000000001e59868 in _start ()
Movie rendering problems on the Linux version
The title screen, transition from title screen, and cutscenes in certain dialogue options are all movies. On Windows these are all using bink videos and render fine in Proton. The Linux version uses a VLC playback mechanism as part of Unreal's UMediaPlayer object, while the format still being in bink. These movies don't render correctly even on an x86 device, so it is an application bug.
Testing Results
This title has been tested on the environments listed below:
Test Entries | ||||||
---|---|---|---|---|---|---|
Revision | Arch of Title | SoC | GPU | Result | Tester | |
FEX-2504-66-g8ff7497 | x86-64 | Radxa Orion O6 | Radeon Pro W7500 | Works fine with quirks | Sonicadvance1 | |
FEX-2207 | x86-64 | Snapdragon 888 | Adreno 660 | Crashes with Freedreno | Sonicadvance1 |