fabioroberto

Q: 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)

Posted on Sep 17, 2016 8:05 AM