protonscr

[Halo MCC - Halo 1] Memory (RAM) leaks while playing

dxvkclosed game bug
doitsujin/dxvk#3149 · opened 2022-12-26 by SpidFightFR · updated 2022-12-28 · 18 comments · github
SSpidFightFR 2022-12-26 github

When playing Halo 1 (anniversary) on the Master Chief Collection, with GE-Proton7-43 (that ships with an exp build of dxvk), i got huge memory leaks: ram usage sky-rocketed to 16Gb (whole ram) and 7Gb (Swap), and it kept rising, eventually freezing the whole pc.

Software information

Halo 1, MCC, GE-Proton7-43, gamemoderun, highest settings (shouldn't be an issue).

System information

  • GPU: GTX 1060 6Gb
  • Driver: Proprietary, 525.60.11
  • Wine version: [don't know]
  • DXVK version: 2.8.0 (exp, from 19/12/22)

Log files

BBlisto91 2022-12-26 github

Hello.
Does this not happen with wined3d?
If it doesn't then does this also happen with regular proton experimental which uses official dxvk and not the async version (tho i can see from your log async isn't specifically enabled). Also might be worth testing proton 7.0-5 which uses a dxvk version based on 1.10.3 and not 2.0

SSpidFightFR 2022-12-26 github

okay, lemme try with proton exp, i'll keep you in touch.

SSpidFightFR 2022-12-27 github

It also happens with proton experimental and proton 7.0-5, too. Maybe it's not DXVK, then...

BBlisto91 2022-12-27 github

They will still use dxvk by default.
To test without dxvk launch the game in steam with PROTON_USE_WINED3D=1 %command%

SSpidFightFR 2022-12-27 github

Nope, still happens, even with PROTON_USE_WIND3D=1 %command%... I'll make an issue on the proton github page. thanks for the help !

BBlisto91 2022-12-27 github

No problem. Hope you figure out your issue

Edit: i see there is a typo in the env var you posted. I made that typo at first before correcting If you copy pasted

SSpidFightFR 2022-12-27 github

Holly molly, yeah, it was a typo, thanks ! Indeed, after correcting it, ram usage stopped skyrocketing. So maybe it is dxvk...

BBlisto91 2022-12-27 github

@SpidFightFR are you able to make a apitrace? You can find a guide here https://github.com/doitsujin/dxvk/wiki/Using-Apitrace

If done together with dxvk in proton all you have to do is to dump the DLLs next to the exe and launch. Tho dunno if it's better to do it without dxvk in a case like this.

SSpidFightFR 2022-12-27 github

Hello, sorry i'm late, i tried to move the DLLs into my game files, but there's no apitrace files in the desktop folder of the game pfx... I think i'm making it wrongly...

BBlisto91 2022-12-27 github

If you are trying to make it with wined3d and not dxvk then you need to add wine dll overrides in your steam launch options WINEDLLOVERRIDES="d3d11,dxgi=n,b"

SSpidFightFR 2022-12-27 github

But it works with wined3d, the ram stays at 8Gb of usage, while with dxvk, it jumps to 24Gb and eventually crashes the pc.

BBlisto91 2022-12-27 github

Yes the devs will try to replay the trace locally with dxvk on top to see if anything sticks out.

But if you can get a trace recorded with dxvk also that would be great. There you should just be able to dump the 3 dll's (remember correct bit version) next to the exe and launch. Remember to remove PROTON_USE_WIND3D=1. (yes i know i already said this, so just repeating and adding extra notes to make sure)

SSpidFightFR 2022-12-27 github

Okay, i'll check on PCGamingwiki to make sure i have the correct bit version and all. I'll keep you in touch. thanks again for the help.

SSpidFightFR 2022-12-27 github

Okay so i tried to put the dlls, both in the MCC.exe folder and Halo1 folders, but nothing worked, in the prefix folder, i don't have a file created.

Btw i looked at the wiki and it asked for winecfg or something, i don't have access to this command, is it normal or i need a package to log the apitrace ? (Sorry i'm a noob)

BBlisto91 2022-12-27 github

winecfg comes with regular wine installed through your package manager. But the env var WINEDLLOVERRIDES="d3d11,dxgi=n,b" should work fine in steam without when using wined3d and shouldn't be needed when using dxvk (tho doesn't hurt either).

SSpidFightFR 2022-12-27 github

I don't have wine installed using my package manager, i only use the tools given in proton or proton-GE so i guess it's normal.

Yet, despite many attempts, and trying to run the game with the env var and all, with or without dxvk, the .trace file doesn't appear in comptdata/{gameid}/pfx/c_drive/users/steamuser/desktop, like said in the wiki you sent earlier... It drives me nuts...

BBlisto91 2022-12-27 github

Hello again.
So i've been able to reproduce this and did a bit of searching. It seems to be a game bug introduced in the latest game update and also happens on Windows with the devs being aware and looking into it. See https://www.reddit.com/r/halo/comments/zfyd6u/the_new_mcc_update_has_an_issue_with_memory/

Besides dxvk on Linux i could also reproduce with wined3d, but it happened alot slower (maybe because my performance was horrible) so took alot longer for memory to slowly climb up.

SSpidFightFR 2022-12-28 github

Hello, interesting…
Okay, i’ll close the issue then. Thank you so much!

Proton versions

Launch options

Launch lines