Frame throttle option on mobile devices/tablets

Hi everyone!

Thanks to a recent @coolstarorg tweet, I recently noticed that activating Frame Throttle -> Sync to Exact Content Framerate (G-Sync, Freesync) on my iPad Pro 2 unlocks its 120 FPS capabilities for the supported cores, and actually syncs to 50 FPS automatically when playing PAL content too!

I think it must be the same on other mobile devices (iPhones, Android phones and tablets…) but I didn’t test it myself, as I use RetroArch only on this iPad…

If someone can confirm it works fine on other mobile devices, I think we could rename the option to Sync to Exact Content Framerate (G-Sync, Freesync, mobile devices) to make it clear for everyone not aware of this fact!

Interesting. That’s news to me! I’m pretty sure not all mobile devices support variable refresh rates, but that’s really awesome that some apparently do :open_mouth:

1 Like

@hunterk I can confirm this is the case for all iOS devices (at least down to the iPhone 6 I tested on iOS 12), I will try on older devices and iOS versions (down to the 4s and iOS 6.1.3) after I compile for this old iOS version !

Now the only thing left to test is Android devices, I may get around to try it myself, but I would greatly appreciate if anyone could do just that on an Android device for me…

This post doesn’t seem to get much attention as I posted it in an awkward location (not even in the general category), so Android people may not see it easily…

Anyway, my methodology of testing if someone wants to help is :

  1. Activate Sync to Exact Content Framerate (G-Sync, Freesync)
  2. Save settings and close RetroArch
  3. Open 50 Hz content, or use the PrBoom core and set an arbitrary framerate, then restart the core
  4. Open the Quick Menu
  5. Go to the main menu and check if the Estimated Screen Framerate is correctly 50 Hz (or at what framerate the content should be running at)
1 Like

@hunterk My methodology seems somewhat flawed, but on an iPad Pro 2, this is indeed the only way to unlock its 120 Hz capabilities…

If the option is NOT active, the estimated screen framerate will only be around 79 Hz or so for 120 FPS content !

But it seems to be flawed because on mobile devices, loading PAL content with the option NOT active will set the estimated screen framerate to around 50 Hz too, so there must be something I don’t quite understand yet…

On Android, (I got to test on a Mi phone and an Oppo phone…) the default settings after installing from the Play Store doesn’t show the estimated screen framerate…

After turning off the Threaded Video setting for the estimated screen framerate to show, and then activating the Sync to Exact Content Framerate, the experience was far from optimal, with audio stuttering here and there even for 60 Hz content, which isn’t the case on iOS devices, where the audio is then very smooth and framerate seemingly very constant !

I will conduct some more testing and try to report my findings here, but if anyone can help or give some insight on the mobile devices situation, I would be glad to hear it !

1 Like

@hunterk Ok, I’ve managed to compile the latest version for the old iOS 6, and enabling the Sync to Exact Content Framerate works perfectly on an iPhone 4s on iOS 6.1.3, from PAL 50 Hz games to PrBoom at 35 FPS, audio and gameplay is completely smooth and synced to the proper framerate !

I think we could look into renaming the option “Sync to Exact Content Framerate (G-Sync, Freesync, iOS)”, which would make sense because Android devices seem to be pretty much hit & miss with setting a proper constant framerate, and the Threaded Video option is enabled by default on these devices anyway…

@Twinaphex could you give us your point of view about this ?