Pause Emulation hotkey: Very high GPU/CPU usage when paused

Hi, I’m a longtime casual RetroArch enjoyer. I’ve come across an strange issue with the “Pause Emulation” hotkey. I’m using a Windows 11 laptop with a dedicated GPU (RTX 3070Ti)

In RetroArch 1.16.0, when I pause the emulator with the Pause Emulation hotkey, my RetroArch FPS goes from a normal 60 FPS to a much higher 380+ FPS. My laptop’s fans start to get pretty loud and my monitoring software (MSI Afterburner) shows that GPU & CPU clock speed, usage and temps get especially high as soon as I have Pause Emulation turned on. Basically, pausing emulation is very strenuous on my laptop.

Are there any settings that cause this odd behavior on RetroArch? I’m using the Vulkan renderer, I have preemptive frames set to 2, “Sync to exact content framerate” is turned on, and “Throttle menu framerate” is also turned on.

I can press F1 to access the RetroArch menus, which acts as sort of a “pause” in emulation. When inside the RetroArch menus, the high FPS/GPU & CPU usage thing doesn’t happen.

Since I’m using a laptop with a GPU, I’m not sure if this could be the result of some odd interaction with Nvidia Optimus, though I can confirm that RetroArch uses my dedicated GPU, not the integrated graphics.

The weird Pause Emulation issue did not happen on my older Windows 10 laptop which also has an Nvidia GPU (GTX 1660 Ti). I don’t remember which RetroArch version I was using on the older laptop though (it’ll be older than 1.16.0 of course), and I don’t have immediate access to my older laptop for now. My current laptop is the only computer I can test this on for now.

Here’s some more info that hopefully helps: Windows version: Windows 11 22H2 Cores tested: Snes9x, mGBA, NXEngine. (they all have the Pause Emulation high FPS/GPU & CPU issue)

Let me know if there’s other information about my configuration that I should share to help diagnose this issue. I’d like to have the Pause Emulation hotkey NOT make my computer become hot and overworked. I’d be grateful for any help that could be provided.

First thing to try would be moving your retroarch.cfg somewhere else temporarily to see if it does the same thing with default settings (the default pause hotkey mapping is ‘p’, btw)

Ok, I tried running RetroArch on default retroarch.cfg settings, and I still get the same high FPS/GPU & CPU issue when pausing emulation. I did find an odd behavior with the Frame Advance hotkey though: If I pause the emulation by pressing the Frame Advance key instead (K by default), I don’t have the high FPS/GPU & CPU usage issue, which seems pretty strange.

I don’t have any other technical issues with RetroArch, so this one is having me stumped. I like to alt-tab out of RetroArch sometimes, but Alt-tab causes high FPS/GPU & CPU usage, which is why it’s kind of inconvenient for my use case. I’ll see if I can experiment with a few settings tomorrow, though I’m not really sure where the issue could be.

Does it only happen in Fullscreen mode? If you, try to use Windows Fullscreen mode for the time being, as a workaround. Not sure if this intereferes with variable refreshrate, but just throwing out this option: Settings > Video > Fullscreen Mode > Windowed Fullscreen Mode=ON

Hi, wasn’t able to test RetroArch stuff recently, but I got to try a few things today. I found a solution outside of RetroArch that prevents high FPS when emulation is paused. (Nvidia Control Panel frame cap) But this introduces a new issue with the fast forward key.

Also, apologies for the mistake, but I’ve found that overall CPU usage remains low when paused: It’s the CPU clock speed and power usage that get high when paused.

Does it only happen in Fullscreen mode? If you, try to use Windows Fullscreen mode for the time being, as a workaround.

Windowed Fullscreen: When I try Windowed Fullscreen, I still get the same issue when pausing emulation: Very high FPS, GPU/CPU usage.

On a related note, if I play RetroArch in windowed mode with the window shrunken down to a size that’s smaller than full screen (such as 3x size), I’ll still get the high FPS issue when pausing, but the GPU/CPU won’t be overworked as hard when the game is in a smaller window.

Nvidia Control Panel - 60FPS cap: I used the Nvidia Control Panel program and changed retroarch.exe to be hard-limited to 60FPS. All of the stuff I play on RetroArch is 60FPS, so this felt like a good choice, and… Hey, it works! Pausing emulation with a 60FPS cap keeps the FPS at a far more sane 60FPS. Sometimes it goes to 60.01 or .02.

I’m not sure if capping FPS could introduce issues down the line with other consoles. I’m mostly playing SNES for now.

Capping FPS introduced a new issue with fast-forwarding: The fast forward key no longer speed through the game at up to 370+ FPS, instead only going up to 78-ish FPS. I actually want to keep the very high FPS boost when fast-forwarding, but I don’t want high FPS when emulation is paused. In RetroArch settings, I have Fast Forward Rate set to 6.0x.

Not sure if it matters but I forgot to mention that I have an Intel i7 12700H processor.

For now, I still have these questions about RetroArch:

1. Is it possible to change RetroArch’s behavior when pressing Alt+Tab? I would prefer to have Alt+Tab send me directly to the F1 pause menu, which has never given me high FPS issues. I’ve only found an option to keep the game unpaused if the user presses alt-tab.

2. Does anyone else have very high FPS when pausing emulation? I’ve been searching around and found another user on Reddit that has very high FPS with emulation paused on their Steam Deck. Of course that’s not a Windows device, but it’s the only other report I’ve seen of high FPS on paused emulation.

Extra Stuff:

Lastly, here’s some quick and dirty testing of the pausing issue with MSI Afterburner’s on-screen statistics. Not sure how helpful this is, but I thought I’d post it anyway.

Typical RetroArch, Snes9x performance

Using the Snes9x 1.62 core, I let Super Mario World run for around 5 minutes, showing typical performance. The small spike on the graph is from an earlier failed screenshot (the screen was too bright and made the graph even harder to read, so I had to take a second screenshot as the title screen fades out)

RetroArch, Snes9x performance with Pause Emulation

This is Super Mario World staying on paused emulation for around 5 minutes. CPU temps spiked to 81c, but it was mostly in the 67-71c range.

I disabled all filters and shaders for the tests, which slightly increased paused FPS to 400. I’ve had a simple NTSC filter turned on when testing this in the past, and it’s interesting to see how that can affect RetroArch performance, even if only slightly.

All you need is nightly, because: https://github.com/libretro/RetroArch/pull/16067

3 Likes

Nice! Glad to see there was a commit for the high FPS issue.Thanks very much :blush:

Unlike in version 1.16.0, I can confirm that the newest nightly build does not suffer from crazy high FPS and GPU/CPU activity when emulation is paused. I did have to turn off Vsync before the issue became fixed in the nightly build. Keeping Vsync on results in the same behavior of very high FPS when paused. I see from the commit that needing to disable Vsync for the fix is intentional.

Might be a bit off-topic for this thread, but I’ve never really used nightly builds of RetroArch before. Would you (or anyone else) say that nightly builds are relatively stable?

I would like to add a message on my original post saying “this issue is fixed in the newest nightly RetroArch” though I can’t seem to find the edit button on my original post.

I set the limiting to happen only when vsync is toggled off, since that was the only way I could reproduce the high usage… As in with regular vsync enabled the pause usage is already very low. I guess there is no harm having the limiting happen regardless of vsync, so let’s change that a bit.

Please try the next nightly, and sure they are “relatively stable”.

In the newest nightly build, pausing emulation is no longer stressing the CPU/GPU whether Vsync is on or off. Thanks again for the help here :+1:

2 Likes