You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iPhone 15 Pro Max(120Hz屏)设置GLKView/MTKView帧率?

解决GLKView/MTKView在ProMotion设备上的120Hz渲染限制

通用前置设置

首先确保App允许突破帧率限制:

  • 在Info.plist中添加键CADisableMinimumFrameDurationOnPhone,设置值为YES,这个配置允许iPhone上的视图突破默认60Hz帧率上限。
  • 检查视图所在的UIWindow,设置其preferredFramesPerSecond = 120,窗口的帧率设置会作为子视图的帧率上限。

GLKView 配置方案

GLKView默认依赖内部CADisplayLink锁定60Hz,需要手动替换为自定义高刷新率驱动:

  1. 禁用GLKView的自动刷新机制:
    self.glkView.enableSetNeedsDisplay = YES;
    
  2. 创建自定义CADisplayLink并设置120Hz刷新率:
    CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(triggerGLKRender)];
    displayLink.preferredFramesPerSecond = 120;
    [displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
    
  3. 在DisplayLink回调中触发渲染:
    - (void)triggerGLKRender {
        [self.glkView setNeedsDisplay];
    }
    
  4. 确保GLKView的渲染逻辑能在8.3ms内完成(1/120秒),否则系统会强制降帧。

MTKView 配置方案

手动定时调用setNeedsDisplay的方式存在同步问题,推荐以下两种配置方式:

方式1:自动刷新模式(推荐)

  1. 解除MTKView的暂停状态(默认处于暂停):
    self.mtkView.paused = NO;
    
  2. 设置目标帧率:
    self.mtkView.preferredFramesPerSecond = 120;
    
  3. 禁用手动触发,让MTKView自动按帧率渲染:
    self.mtkView.enableSetNeedsDisplay = NO;
    

方式2:手动触发模式(需同步DisplayLink)

如果必须手动控制渲染时机,不要用普通定时器,而是用CADisplayLink同步:

  1. 启用手动触发:
    self.mtkView.enableSetNeedsDisplay = YES;
    self.mtkView.paused = YES;
    
  2. 创建120Hz的CADisplayLink:
    CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(triggerMTKRender)];
    displayLink.preferredFramesPerSecond = 120;
    [displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
    
  3. 回调中触发渲染:
    - (void)triggerMTKRender {
        [self.mtkView setNeedsDisplay];
    }
    

额外注意事项

  • 低电量模式下,ProMotion会自动切换到60Hz,测试时确保设备电量充足且关闭低电量模式。
  • 检查渲染管线耗时,比如GPU计算、纹理加载等操作,如果单帧耗时超过8.3ms,系统会自动降帧到60Hz,可通过Xcode的Instrument工具(Core Animation/Metal System Trace)排查性能瓶颈。

内容的提问来源于stack exchange,提问作者zeus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:16:05