-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.6.0 RC
-
None
-
iPhone 15 Pro, iOS 17.0.2
On an iPhone with a "Pro Motion" display, capable of up to 120 fps, it seems impossible to achieve more than 60 frames per second with any configuration available through the public API.
Running any QML app (example attached, the screen property is set to QGuiApplication::primaryScreen()) with an animated element yields the following output with QSG_INFO=1. The app was built with Info.plist that set CADisableMinimumFrameDurationOnPhone and CADisableMinimumFrameDuration keys to true.
QML debugging is enabled. Only use this in a safe environment. threaded render loop Using sg animation driver Animation Driver: using vsync: 8.33 ms stale focus object 0x0 , doing manual update Using sg animation driver Animation Driver: using vsync: 8.33 ms Creating QRhi with backend Metal for window 0x2833543c0 (wflags 0x1) Graphics API debug/validation layers: 0 Debug markers: 0 Timestamps: 0 Prefer software device: 0 Shader/pipeline cache collection: 1 Metal device: Apple A17 Pro GPU Created QRhi 0x280e555c0 for window 0x2833543c0 MSAA sample count for the swapchain is 1. Alpha channel requested = no. rhi texture atlas dimensions: 2048x4096 got CAMetalLayer, pixel size 1179x2277 (scale 3.00) animation driver switched to timer mode
The overlay in the attached screenshot is added by enabling the Graphics HUD in iOS Developer settings.
From my understanding of the iOS API, there is a difference between Pro Motion support for iPad and iPhone platforms and with iPhones, the application needs to control the display link a lot more.