确实是 LayaNative 帧调度这边的改动。3.3.6 到 3.3.10 之间有一个提交修复了"Android 限帧失效"的问题——之前 Swappy 帧调度库虽然初始化了,但实际 swap 时并没有走 Swappy 的路径,用的还是普通的 eglSwapBuffers。修复后 Swappy 才真正接管了帧调度。
你看到的 45fps 大概率是因为设备屏幕是 90Hz 刷新率。Swappy 默认目标是 16.67ms(60fps),但在 90Hz 屏上一个 VSync 周期是 11.11ms,16.67ms 不够正好对齐一个 VSync,Swappy 会取 2 个 VSync 间隔 = 22.22ms,对应 45fps。这也解释了为什么帧率"很稳定"——Swappy 的帧调度确实比裸 eglSwap 更规律。
解决办法:把 Config.FPS 设为你设备的屏幕刷新率(比如 90),这样 Native 端的 Swappy swap interval 就能匹配上单个 VSync,帧率就能上去。如果你的游戏面向不同刷新率的设备,可以考虑设为 120 让 Swappy 自动适配。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。