power side of Hybrid Graphics chip

I have hit a brick wall and I wonder if someone here can help. My program opens an OpenGL surface for very minor rendering needs. It seems on the MacbookPro this causes the graphics card driver to switch the hybrid card from low performance intel graphics to high performance AMD ATI graphics.

This causes me problems as there seems to be an issue with the AMD driver and putting the Mac to sleep, but also it drains the battery unnecessarily fast. I only need OpenGL to create a static 3D image on occasion, I do not require a fast frame rate!

Is there a way in a Cocoa app to prevent OpenGL switching a hybrid graphics card into performance mode?


The relevant documentation for this is QA1734, “Allowing OpenGL applications to utilize the integrated GPU”:

… On OS X 10.6 and earlier, you are not allowed to choose to run on the integrated GPU instead. …

On OS X 10.7 and later, there is a new attribute called NSSupportsAutomaticGraphicsSwitching . To allow your OpenGL application to utilize the integrated GPU, you must add in the Info.plist of your application this key with a Boolean value of true

So you can only do this on Lion, and “only … on the dual-GPU MacBook Pros that were shipped Early 2011 and after.”

There are a couple of other important caveats:

Additionally, you must make sure that your application works correctly with multiple GPUs or else the system may continue forcing your application to use the discrete GPU. TN2229 Supporting Multiple GPUs on Mac OS X discusses in detail the required steps that you need to follow.

and:

Features that are available on the discrete GPU may not be available on the integrated GPU. You must check that features you desire to use exist on the GPU you are using. For a complete listing of supported features by GPU class, please see: OpenGL Capabilities Tables.

链接地址: http://www.djcxy.com/p/61794.html

上一篇: 我如何读取OpenGL依赖关系?

下一篇: Hybrid Graphics芯片的电源端