MacBook Pro 2010 15" GPU Panic - fix (potential)
Hello,
Well, after years i found a solution (so mine?). I have the famous MacBook Pro 6,2 with GT330m (0x0a29 model).
I discovered that this problem happens every time that g-state change between 2 to 0 (or 2 to 1). The problem in the use of nvidia is not the gpu, but the stabilization of the voltage when the gpu changes from g-state 2 to 0 (or 2 to 1), causing the known issues.
G-States go from 0 to 3, are related to the gpu use (idle/load).
This is to maximize performance and battery consumption. Are related to the thresholds inside AppleGraphicsPowerManagement.kext, like this:
G-state 0 (maximum speed) and G-state 3 (lowest speed).
I solved the problem by keeping it always at G-State 2 (medium speed), that the problem of stabilizing the voltage not compromise the gpu work.
And the performance? Exemple: Cinebench, default (G-state 0) i've about 15fps, with g-state 2 (medium speed): 10fps.). Not bad.
Battery consumption does not change much.
If you want to try, these are the values changed in the info.plist:
(attention: only try this if you really have the problem gpu panic).
<key>MacBookPro6,2</key>
<dict>
<key>LogControl</key>
<integer>1</integer>
<key>Vendor10deDevice0a29</key>
<dict>
<key>BoostPState</key>
<array>
<integer>2</integer>
<integer>2</integer>
<integer>2</integer>
<integer>2</integer>
</array>
<key>BoostTime</key>
<array>
<integer>2</integer>
<integer>2</integer>
<integer>2</integer>
<integer>2</integer>
</array>
<key>Heuristic</key>
<dict>
<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>10</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>SensorSampleRate</key>
<integer>10000</integer>
<key>TargetCount</key>
<integer>1</integer>
<key>Threshold_High</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>100</integer>
<integer>200</integer>
</array>
<key>Threshold_High_v</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>98</integer>
<integer>200</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
<integer>200</integer>
</array>
<key>Threshold_Low_v</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>4</integer>
<integer>200</integer>
</array>
</dict>
<key>control-id</key>
<integer>17</integer>
</dict>
Perfect values? I do not know, but it is working for me. Only so.
Step by step:
1 - Verify that the file is the original and this loaded (there are mods that remove these files) and if they are the original (Apple signed):
- ACPI_SMC_PlatformPlugin.kext (IOPlatformPluginFamily.kext)
- AppleGraphicsPowerManagement.kext
You can check this on: About System Information -> Extensions
2 - Disable SIP (boot into recovery mode, terminal: csrutil disable)
SIP is important to safety, but, we are good guys, we'll know to keep the system safe!
3 - Open Extensions folder (System/Library/Extensions), copy AppleGraphicsPowerManagement.kext to desktop (or other folder), open the info.plist into editor (I used the PlistEdit Pro.app), and change the values like writing up.
Attention: verify if your model is 0x0a29 really.
4 - Save info.plist, quit editor.
5 - Use Kext Drop.app or Kext Utility.app (this is not marketing, okay?) Only to facilitate the process to instal this kext, but before, delete the AppleGraphicsPowerManagement.kext into extensions folder.
6 - (This is important step) Leave the automatic graphics switching select (System Preferences - Energy Saver), if you are using gfxCardStatus.app, same thing!.
After, reboot normally.
(make sure the AppleGraphicsPowerManagement.kext is loaded. You can check this on: About System Information -> Extensions)
Remember, the option automatic graphics switching selected always.
First:
here, in my tests is important every boot must be in automatic mode. Discrete gpu only (automatic graphics switching unselected) not working properly, and, i don't know why. Maybe smc is responsible.
Second:
after osx loading i can change to discrete cpu only or in automatic graphics switching. No problem.
without crash or failure.
(working Sierra GM also)
7 - Open Console.app, type into search: gfx0 and check if g-state changes if working!
https://dl.dropboxusercontent.com/u/35721057/console.png
AppleGraphicsPowerManagement.kext 10.11.6 (edited)
https://dl.dropboxusercontent.com/u/35721057/AppleGraphicsPowerManagement.kext.z ip
Good luck. I hope this helps you
(sorry my poor english)