sudachi-emu / sudachi

Sudachi is a Nintendo Switch emulator for Android, Linux, macOS and Windows, written in C++
GNU General Public License v3.0
1.39k stars 82 forks source link

Xenoblade Chronicles 3 OpenGL Memory Leak #82

Open alexriveraz opened 1 month ago

alexriveraz commented 1 month ago

Is there an existing issue for this?

No, I have searched the existing ones.

Affected Commit or Release

latest/vedd7896

Description of Issue

There is a memory leak while running Xenoblade Chronicles 3 (2.2.0) using OpenGL shader backend, as you know there is no other option for Future Redeemed DLC expansion to run on AMD Zen 2 setups, crashes the whole system using Vulkan when loading a game, expansion title menu works just fine in Vulkan.

On my Steam Deck OLED it crashes to 'Verifying Installation' when the swap filesystem exceeds the 16GB it has configured, Sudachi's performance also degrades as it fills up the swap, audio stops, bluetooth disconnects, etc. It also fills up the VRAM, when it doesn’t crash the whole system it becomes unstable and needs to be rebooted.

Tested in Steam Deck OLED, Desktop and Game Mode. (deck@steamdeck sudachi)$ cat /etc/os-release NAME="SteamOS" PRETTY_NAME="SteamOS" VERSION_CODENAME=holo ID=steamos ID_LIKE=arch ANSI_COLOR="1;35" HOME_URL="https://www.steampowered.com/" DOCUMENTATION_URL="https://support.steampowered.com/" SUPPORT_URL="https://support.steampowered.com/" BUG_REPORT_URL="https://support.steampowered.com/" LOGO=steamos VARIANT_ID=steamdeck VERSION_ID=3.5.17 BUILD_ID=20240228.2

Expected Behavior

No memory leak/system crashes while running Xenoblade Chronicles 3 using OpenGL.

Reproduction Steps

Just load a new game or continue an existing one, main or dlc game, choose OpenGL as shader backend, after 5-10 minutes it will start filling VRAM and the swap/page file.

Logs

Update: log attached, it always happens though. sudachi_log.txt

System Configuration

CPU: AMD Zen 2 4c/8t 2.4-3.5GHz GPU/Driver: 8 RDNA 2 CUs, 1.6GHz RAM: 16GB LPDDR5 OS: SteamOS 3 (Arch-based)

Screenshots

XC3-1 XC3-2