我正在将一些旧的OpenGL代码转换为Metal。
此刻,我正在使用MTKView将内存缓冲区渲染到窗口。我将其与paused = YES,enableSetNeedsDisplay = NO以及从渲染循环中手动调用draw()一起使用。
一切正常,除了我没有明显原因而限制为每秒60帧的事实。我怀疑我不希望Metal同步到监视器刷新。
当我调整窗口大小时,我的帧速率暂时跳到了每秒150+帧,这告诉我限制不是我自己的。
有人知道如何停止此帧速率限制吗?我尝试将preferredFramesPerSecond设置为不同的值(较低和较高),但这似乎没有效果。
感谢任何指针。
答案 0 :(得分:3)
通常来说,我在问了问题几分钟后就知道了:
CAMetalLayer *c = self.layer;
c.displaySyncEnabled = NO;