If you are noticing low performance in your nVidia, the problem may be in AppleGraphicsPowerManagement kext. A good app to test is
OpenGL Extensions Viewer.
In order to tune it, you can edit the kext's Info.plist, or use a legacy kext and keep the original AGPM.
How to edit Info.plist
viewtopic.php?f=18&t=1704Legacy kext examples:
Laptop
LegacyAGPM.kext.zip [2.6 KiB]
Desktop
LegacyAGPM.kext.zip [2.59 KiB]
Edit: AGPM structure has changed in 10.8.2, here you find updated legacy examples
viewtopic.php?f=3&t=629&start=90#p22641The problem happens because the GPU stays at its lowest G-state (lowest performance for energy saving).
G-states are defined in keys
Threshold_High and
Threshold_Low, for example:
Code:
<key>Threshold_High</key>
<array>
<integer>57</integer>
<integer>70</integer>
<integer>88</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>68</integer>
<integer>75</integer>
<integer>95</integer>
</array>
It means when the GPU is
95 to
100 %
idle, it must engage state
3 (more energy saving).
75 to
88 % idle, state 2.
68 to
70 % idle, state 1.
0 to
57 % idle, state 0 (max performance).
To activate G-state switching we need to specify the GPU's
vendor and
device ID under the key with the model identifier (
SMproductname) used in SMBIOS.
Example:
Code:
<key>MacBookPro6,2</key>
<dict>
<key>LogControl</key>
<integer>0</integer>
<key>Vendor10deDevice0df0</key>
<dict>
...
</dict>
</dict>
How to find vendor and device ID
viewtopic.php?f=18&t=63Change
LogControl from 0 to 1 to see state changes in kernel log
Code:
Apr 8 18:29:18 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 1 from 2, ControlID = 17
Apr 8 18:29:19 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
Apr 8 18:30:30 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
Apr 8 18:30:32 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 2 from 1, ControlID = 17
If you choose the legacy kext, copy a key from original AGPM according to your hardware. For desktop use iMac or MacPro. For laptop use MacBook or MacBookPro.
