对于我所有的 SDL/OpenGL 程序,帧速率都停留在 60fps,所以看起来垂直同步已启用,但不是由我启用,也不是在我的代码或我的设置中。所以我现在想如果有办法禁用它,也许在一些深层的 macOS 设置中?
问问题
29628 次
3 回答
8
这使我能够在我的 MacBook Pro 上获得大约每秒 700 帧。
- 下载 Xcode 图形工具 - 2014 年 8 月下旬
- 安装或仅安装图形工具
- 打开石英调试
- 转到工具 -> 显示光束同步工具
- 选择禁用光束同步
它也不是永久性的,非常适合测试/基准测试。
于 2014-09-05T04:14:54.047 回答
5
欢迎来到 SO。我在这里为类似问题概述了一种方法。您应该考虑到大多数 Mac LCD 被锁定为 60Hz,而最近的硬件被限制为 120Hz。禁用 vsync 可能只会导致 CPU/GPU 周期的浪费,并可能引入撕裂伪影。
于 2012-09-10T07:52:47.100 回答
5
经过多年寻找解决方法(并在Brett Hale的帮助下),这对我有用 - 我在渲染循环开始时添加了那段代码(不仅在 init 中,因为 Apple 似乎重置了每次的 SwapInterval 设置......),终于能够有不同步的帧率:
#ifdef __APPLE__
GLint sync = 0;
CGLContextObj ctx = CGLGetCurrentContext();
CGLSetParameter(ctx, kCGLCPSwapInterval, &sync);
#endif
不要忘记包括<OpenGL/gl.h>
这不是最好的解决方案,但它实际上是我发现的唯一一个像魅力一样工作的解决方案。
于 2016-09-12T20:26:58.977 回答