使用SDL在MacOS X上全屏时OpenGL减速?

时间:2011-07-13 18:50:19

标签: macos opengl sdl

我一直在使用最新的SDL 1.3和OpenGL来开发一款现在正在进行beta测试的游戏。一些用户在全屏 - 大约18fps - 上报告了在窗口模式下可以轻松运行200-300fps的大幅减速。这些相同的用户通常能够通过在窗口模式和全屏模式之间切换一次或两次来“修复”问题。然后它甚至全屏运行全速。

我无法在我测试的任何系统上复制它。正在经历放缓的三个用户使用不同的系统(所有确实是英特尔双核2系统)运行不同的显卡,所以我怀疑这是一个驱动程序问题。

令人鼓舞的是,即使在SDL的SDL附带的极小的testgl2演示中也证明了这个问题。如果您只是简单地修改演示以运行全屏,那么只要它在一个“受影响的”系统上运行,它就会在全屏时显示相同的减速。我很好奇这里是否有人有MacOS X系统复制问题。要查看,只需下载最新的SDL 1.3:

http://www.libsdl.org/tmp/SDL-1.3.zip

构建SDL框架,然后构建SDL测试,编译gltest2演示。打开gltest2.c并输入:

SDL_SetWindowFullscreen(state-> windows [0],true);

之前/ *主渲染循环* /

如果您可以在系统上复制问题[即全屏时运行速度低于60fps - 退出时检查控制台输出的帧速率,请在此处发布。特别是如果您认为您可能有解决方法的想法!我一直试图解决这个问题几个星期了,并且已经在互联网上搜索无济于事。

1 个答案:

答案 0 :(得分:2)

这结果是SDL 1.3中的一个错误(使当前的全屏OpenGL上下文再次流动很慢,所以现在SDL缓存当前上下文以使SDL_GL_MakeCurrent()成为无操作)。它现在在变更集2a152e7e82f2和7ed38a8ad304之间修复。