[macOS] Connecting an external display causes max frame rate to drop significantly and become inconsistent
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
In macOS, having an active external display causes a significant reduction in RetroArch's performance. The maximum frame rate it can hit when using fast forward drops considerably, and becomes very unstable, usually sporadically dropping down to as low as 60-70 fps before jumping back up again.
I've mainly reproduced this using the cores "Snes9x - Current" and "bsnes-mercury Performance", but all cores seem to be affected, including cores that require less processing power like NES cores.
Expected behavior
When an external display is connected, there is no change in RetroArch's performance or maximum frame rate when using fast forward compared to when there is no external display connected.
Actual behavior
The frame rate when using fast forward is much lower than when no external display is connected, and the frame rate becomes inconsistent, occasionally dropping to near 60 fps, meaning for brief moments there is no fast forwarding happening at all.
Steps to reproduce the bug
- Connect an external display to a mac via DisplayPort or USB-C / Thunderbolt 3
- Launch RetroArch
- Configure it to have no limit when using fast forward, i.e. its fast-forward rate is set to 0.0x
- Configure it to display the current FPS
- Load an SNES ROM using Snes9x - Current
- Keep fast forward toggled and note the unusually slow and inconsistent frame rate
Version/Commit
RetroArch: 1.9.0 stable
Also built from source using Xcode on commit f626ab
This issue has been present since at least 1.8.6 stable.
Environment information
OS: macOS 10.14.6
Reproduced on the following hardware:
2017 27" iMac running macOS 10.14.6
CPU: 4.2 GHz Intel Core i7
Memory: 32 GB 2400 MHz DDR4
Graphics: Radeon Pro 580 with 8 GB of VRAM
External display: Dell P2418HT 23.5-inch 1920x1080, connected via DisplayPort using a OWC Thunderbolt 3 Dock
2019 15" MacBook Pro running macOS 10.14.6
CPU: 2.3 GHz Intel Core i9
Memory: 32 GB 2400 MHz DDR4
Graphics: Radeon Pro Vega 20 4 GB + Intel UHD Graphics 630 1536 MB
External display: Test model display 1600x900, connected via Thunderbolt 3 / DisplayPort
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
No source files, tests, or entry points are named. First reproduce the issue on macOS with an external display, fast-forward enabled, and FPS display visible, then compare performance with and without the display. Done means fast-forward reaches a comparable maximum frame rate and no longer drops intermittently to around 60–70 FPS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, macos
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100