I’m not sure if this is a problem with my computer or Citra, but almost every few hours of playing, the game will freeze my computer entirely. Only thing to do then is restart. After that, everything is fine. I’ve limited the game speed to 150% and am running without V-sync and Accurate Hardware Shader. Also the game resolution is on native.
- Operating System: Windows 10 Home Single Language 64-bit
- CPU: Intel Core i3-6006U @ 2.00GHz Skylake-U/Y 14nm Technology
- GPU: Intel HD Graphics 520
- Citra Version (found in title bar): Citra Canary | Head-87fe581
- Game: Pokemon Omega Ruby
- Screenshot of Issue (include the full Citra window including titlebar): Can’t take a screenshot given that the whole system freezes.
- RAM (not sure if needed): 4GB
Log: Log is empty.
Can you monitor memory and CPU usage (and temperature) during the event? I understand that it freezes, but if you run it in a window and have a status monitor open next to it, you should still see the information that it last saw before it froze.
Thanks to your comment I was able to identify that I’m having a high disk usage issue with the ‘System’ process. Usually it doesn’t create many problems, but coupled with citra’s 80-90% memory usage is enough for a complete meltdown. I just bought this laptop and wasn’t aware of the problem. I guess that’s windows 10 for you. Thank you for the help.
Glad I could help. Its always a good start at debugging issues like that to have a status monitor of some kind open that can tell you if the hardware is getting into an abnormal state.
If you have heavy RAM usage, then the System is going to be utilizing the paging file (think of it as a sort of RAM on the Hard Drive) a lot more often. If you can upgrade your RAM (to give it more breathing room), that would likely help your performance and might even stop it from freezing.
Could you say how much RAM Citra is using on your computer?
It’s 500-800MB on mine starting Pokemon Sapphire with 5x native but I also have a dedicated GPU which splits the memory occupation.
If the freezes happen after a few hours that might mean that Citra is buffering more and more data over time or just has a memory leak?
Looking at your task manager might help you to understand what happens over time and if closing other applications if you run some helps.
Also I’m not very knowledgeable here but the paging file can be adjusted that might fix your freezes if you make it bigger.
My laptop is currently checking the disk for errors, so I can’t use it and that’s gonna take a while. But I remember the memory usage being around 2000MB close to the breaking point.
If your memory never actually exceeds the amount you have on your system, you can disable the page file completely. This is generally only recommended when you have far more memory than you will use (4 GB is pushing it), but it might temporarily solve your problem (it might also introduce more if you actually do use most of your memory sometimes). Buying more RAM if your laptop can support it (like another 4 GB) would be in your best interest. Even if it did not solve your problem, your overall user experience with your laptop will be better.
I have the same issues on an Intel HD4000 in a Surface Pro 1 (detailed specs are trivially google-able). Memory leaks at ~1mb per second. Once it exceeds physical capacity (and would attempt to swap) everything seizes.
The leak doesn’t occur on my desktop with a dedicated GPU, so I’d guess that it’s just bad GL usage that the pedantic Intel drivers don’t smooth over (ie. calling
glGenXXX() with an existing handle [nV and AMD both will free so long as the given handle is correct target-type, intel won’t because that’s not in the spec] is the easy way to do this). Haven’t bothered to actually look, been more concerned working on porting to DX11.
Unfortunately, the way Citra draws doesn’t seem to work with render-doc so I can’t inspect what’s going on (all it sees is a render-target blit) in a cursory view.
I haven’t had any issues with citra in render doc. what exactly are you experiencing there? also, the gl objects in citra have RAII wrappers that release the globject in the destructor, so while the symptoms point to a leak somewhere, its somewhat curious to hear that there is a leak at all. If you’d like to discuss this more, you can chat with the devs on discord or irc (#citra-dev on freenode)