[gl/glcore/vulkan] RA menu uses 100% of GPU resources in fullscreen mode (G-sync related)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Edit: This is a G-sync related problem. I was mistaken in the OP when I thought that G-sync had no effect.
When G-sync is enabled in Fullscreen mode or in Fullscreen+Windowed mode in the GPU driver settings, then the RetroArch menu will have this problem of 100% GPU usage. If G-sync is disabled at the driver level, then GPU usage by RA is normal.
The only RA setting that seems to have some effect is "Max swapchain images" under Video -> Synchronization. With that setting at 3 (default) or 4, GPU usage is at 100%. When set at 1 or 2, then the GPU sits between 85-95% instead. Changing RA's v-sync swap interval setting has no effect at all.
Even if v-sync is disabled in the RA video settings, the RA menu will still use 100% of the GPU, as long as G-sync is enabled at the video driver level.
Description
While sitting in the RetroArch menu, using either the gl, glcore, or vulkan video drivers, the retroarch.exe process is using 100% of my GPU. This only happens when RA is in either exclusive fullscreen or windowed fullscreen mode. When using normal windowed mode, the GPU usage is greatly reduced (around 5-10% on average, although it will spike upward to a sustained 30-33% after a minute or so, even if RA is only sitting idle in the background).
Once any piece of content is loaded, GPU usage drops to normal levels depending on the core in use. Then when the content is closed and the RA menu is reloaded, GPU usage spikes back up to 100% again.
Alt-tabbing away from RA causes GPU usage to drop, until the window is refocused.
This problem occurs with every RA menu driver (tested ozone, xmb, rgui, glui). It does not occur when using the D3D11 video driver.
My GPU is a Nvidia GTX 980 Ti with the latest driver installed (445.75). My monitor is an Acer Predator with hardware G-sync support.
Expected behavior
The RetroArch menu should only need minimal GPU resources to operate.
Actual behavior
The RetroArch menu always uses 100% of GPU resources.
Steps to reproduce the bug
- Start RetroArch in fullscreen or windowed fullscreen mode, using the gl, glcore, or vulkan video drivers.
- Check GPU usage with any hardware monitor (I am using Microsoft's Process Explorer v16.31)
Bisect Results
[Try to bisect and tell us when this started happening]
Version/Commit
You can find this information under Information/System Information
- RetroArch: 1.8.5 stable / Mar 19 2020 / 532fd88e2f
Environment information
- OS: Windows 7 Pro 64-bit SP1 (all updates installed)
- Compiler: MinGW 9.2.0 (64-bit)
- Intel core i7 6700K CPU @4.00 GHz
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue on Windows with the gl, glcore, and vulkan video drivers, fullscreen modes, and G-sync enabled; compare against D3D11 and normal windowed mode. Inspect the fullscreen menu rendering and synchronization paths, including Max swapchain images and v-sync behavior. Done means idle RetroArch menu GPU usage is minimal without regressing fullscreen rendering or loaded content.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100