我撞到了一堵砖墙,我想知道这里是否有人可以提供帮助。我的程序打开一个OpenGL表面,以满足非常小的渲染需求。在MacbookPro上看来,这导致显卡驱动程序将混合卡从低性能英特尔图形切换到高性能AMD ATI图形。
这引起了我的问题,因为AMD驱动程序似乎存在问题并让Mac进入睡眠状态,但它也不必要地快速耗尽电池。我有时只需要OpenGL来创建静态3D图像,我不需要快速的帧速率!
在Cocoa应用程序中是否有办法防止OpenGL将混合显卡切换到性能模式?
答案 0 :(得分:2)
相关文档为QA1734, “Allowing OpenGL applications to utilize the integrated GPU”:
...在OS X 10.6及更早版本中,您不能选择在集成GPU上运行。 ...
在OS X 10.7及更高版本中,有一个名为
NSSupportsAutomaticGraphicsSwitching
的新属性。要允许OpenGL应用程序使用集成GPU,您必须在应用程序的Info.plist中添加此键,其布尔值为true
...
因此,您只能在Lion上执行此操作,并且“仅...在2011年初及之后发布的双GPU MacBook Pro上。”
还有一些其他重要的警告:
此外,您必须确保应用程序可以正常使用多个GPU,否则系统可能会继续强制您的应用程序使用独立GPU。 TN2229 Supporting Multiple GPUs on Mac OS X详细讨论了您需要遵循的必要步骤。
和
集成GPU上可能无法使用独立GPU上提供的功能。您必须检查您正在使用的GPU上是否存在您想要使用的功能。有关GPU类支持的功能的完整列表,请参阅:OpenGL Capabilities Tables。