Contribute
Register

560ti fermi freeze back with latest drivers/10.8.3

Joined
May 18, 2012
Messages
28
Motherboard
OS X 10.8.4 final (12E55)
CPU
i5-2500K
Graphics
nVidia GTX 560Ti
Mac
  1. MacBook Pro
Classic Mac
Mobile Phone
  1. iOS
How to patch your AGPM

0. You cannot use MacPro3,1 system definition, as it will not load the AGPM kext, I recommend that you use MacPro5,1. You can do that easily using MultiBeast:
macpro5%2C1.png

Also, when you're using MacPro5,1 system definition, don't forget to delete AppleTyMCEDriver.kext from /System/Library/Extensions, as it may prevent you from booting.


1. Locate AppleGraphicsPowerManagement.kext in /System/Library/Extensions, then right/ctrl-click it and choose "Show package contents" to open it.

2. Open the Contents directory. You should see a file named "Info.plist", open it in a text editor of your choice. (the default TextEdit.app will do just fine)

3. Using cmd+F locate the MacPro5,1 section.

4. Now, you need to find your GPU's Device ID, it's under About This Mac -> More Info... -> System Report... -> PCI Cards. Vendor ID will be always
0x10de for Nvidia. My GTX 560 Ti's Device ID is 0x1200.

5. Change the "<key>Vendor10deDevice05e2</key>" accordinally. I have changed mine to "<key>Vendor10deDevice1200</key>".

6. Now, you need to change the Threshold Low and High numbers, here's what I use:
Code:
							<key>Threshold_High</key>
							<array>
								<integer>55</integer>
								<integer>40</integer>
								<integer>60</integer>
								<integer>100</integer>
							</array>
							<key>Threshold_Low</key>
							<array>
								<integer>0</integer>
								<integer>75</integer>
								<integer>90</integer>
								<integer>100</integer>
							</array>
Basically, you can use anything you find on the internet, just remember to keep those 100s in last rows. This will prevent you card from going to state 3 (it will go there only if 100% idle...), which is where those freezes occur.

7. If you want to see how your GPU switches between those power states in Console, change that 0 under LogControl to 1.

8. Now you should be done with editing Info.plist. This is how mine looks like with changes highlighted:
Code:
...
				<key>MacPro5,1</key>
				<dict>
					<key>Vendor10deDevice[color=red]1200[/color]</key>
					<dict>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>0</integer>
							<key>IdleInterval</key>
							<integer>250</integer>
							<key>SensorOption</key>
							<integer>1</integer>
							<key>SensorSampleRate</key>
							<integer>4</integer>
							<key>TargetCount</key>
							<integer>5</integer>
							<key>Threshold_High</key>
							<array>
								<integer>[color=red]55[/color]</integer>
								<integer>[color=red]40[/color]</integer>
								<integer>[color=red]60[/color]</integer>
								<integer>[color=red]100[/color]</integer>
							</array>
							<key>Threshold_Low</key>
							<array>
								<integer>[color=red]0[/color]</integer>
								<integer>[color=red]75[/color]</integer>
								<integer>[color=red]90[/color]</integer>
								<integer>[color=red]100[/color]</integer>
							</array>
						</dict>
						<key>LogControl</key>
						<integer>[color=red]1[/color]</integer>
						<key>control-id</key>
						<integer>18</integer>
					</dict>
...

9. Finally you should repair permissions and rebuild cache. I recommend using Kext Wizard for this:
kextwizard.png

Alternatively, you can do "sudo touch /System/Library/Extensions" in terminal and repair permissions from Disk Utility.

10. Reboot and enjoy!
 
Joined
Dec 10, 2010
Messages
106
Motherboard
Gigabyte GA-B85-HD3
CPU
i5 4430
Graphics
RX 580
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
How to patch your AGPM

0. You cannot use MacPro3,1 system definition, as it will not load the AGPM kext, I recommend that you use MacPro5,1. You can do that easily using MultiBeast:

.
.
.

That looks almost exactly like my info.plist that I did a long while back for 10.8.1. There is one thing I am not sure about and that is the control-id. Do you have any idea what that is for and what it should be? It can be either 17 or 18. Mine is currently 17.
 
Joined
Jan 15, 2013
Messages
16
Motherboard
Asus - Essentio Desktop CM6730-US005S
CPU
3.17 GHz Intel 3rd Gen Core i5
Graphics
GeForce GTX 550 Ti
Mac
Classic Mac
Mobile Phone
  1. iOS
How to patch your AGPM
I done everything twice to verify that I didn't miss something. I have a 550 Ti and device ID 1244. After playing a game such as Starcraft 2 and exiting it locked up. Another time I exited and then went to lock the screen and it frozen in the middle of the transition. I'm about to give up and fresh install. Last thing I will do is run Onyx instead of kext wizard. Or maybe change the 100 to 110. :-/

any last ideas?
 
Joined
Dec 10, 2010
Messages
106
Motherboard
Gigabyte GA-B85-HD3
CPU
i5 4430
Graphics
RX 580
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
I done everything twice to verify that I didn't miss something. I have a 550 Ti and device ID 1244. After playing a game such as Starcraft 2 and exiting it locked up. Another time I exited and then went to lock the screen and it frozen in the middle of the transition. I'm about to give up and fresh install. Last thing I will do is run Onyx instead of kext wizard. Or maybe change the 100 to 110. :-/

any last ideas?

Could try using GFX0 instead of the device ID. Here is how I did mine and it works fine.

Code:
<key>iMac11,1</key>
<dict>
	<key>GFX0</key>
	<dict>
		<key>BoostPState</key>
		<array>
			<integer>0</integer>
			<integer>1</integer>
			<integer>2</integer>
			<integer>3</integer>
		</array>
		<key>BoostTime</key>
		<array>
			<integer>3</integer>
			<integer>3</integer>
			<integer>3</integer>
			<integer>3</integer>
		</array>
		<key>Heuristic</key>
		<dict>
			<key>ID</key>
			<integer>0</integer>
			<key>IdleInterval</key>
			<integer>250</integer>
			<key>SensorOption</key>
			<integer>1</integer>
			<key>TargetCount</key>
			<integer>5</integer>
			<key>Threshold_High</key>
			<array>
				<integer>55</integer>
				<integer>45</integer>
				<integer>75</integer>
				<integer>100</integer>
			</array>
			<key>Threshold_Low</key>
			<array>
				<integer>0</integer>
				<integer>85</integer>
				<integer>90</integer>
				<integer>100</integer>
			</array>
		</dict>
		<key>control-id</key>
		<integer>17</integer>
	</dict>
	<key>LogControl</key>
	<integer>1</integer>
</dict>
 
Joined
May 6, 2012
Messages
3
Motherboard
Dell Optiplex 7010 DT
CPU
3770
Graphics
HD4000
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
I can confirm the patched AGPM kext works for me. I copied the MacPro3,1 entry posted a couple of pages back into the plist as there was only MacPro4,1 and 5,1. I guess I could've probably tried just changing the smbios with MultiBeast. I'm not sure the gfx ID is important to me because I'm not having any issues...

I tried Onyx Maintenance prior to all of this and it made no difference at all.
 
Joined
Jan 15, 2013
Messages
16
Motherboard
Asus - Essentio Desktop CM6730-US005S
CPU
3.17 GHz Intel 3rd Gen Core i5
Graphics
GeForce GTX 550 Ti
Mac
Classic Mac
Mobile Phone
  1. iOS
Could try using GFX0 instead of the device ID. Here is how I did mine and it works fine.

Code:
<key>iMac11,1</key>
<dict>
    <key>GFX0</key>
    <dict>
        <key>BoostPState</key>
        <array>
            <integer>0</integer>
            <integer>1</integer>
            <integer>2</integer>
            <integer>3</integer>
        </array>
        <key>BoostTime</key>
        <array>
            <integer>3</integer>
            <integer>3</integer>
            <integer>3</integer>
            <integer>3</integer>
        </array>
        <key>Heuristic</key>
        <dict>
            <key>ID</key>
            <integer>0</integer>
            <key>IdleInterval</key>
            <integer>250</integer>
            <key>SensorOption</key>
            <integer>1</integer>
            <key>TargetCount</key>
            <integer>5</integer>
            <key>Threshold_High</key>
            <array>
                <integer>55</integer>
                <integer>45</integer>
                <integer>75</integer>
                <integer>100</integer>
            </array>
            <key>Threshold_Low</key>
            <array>
                <integer>0</integer>
                <integer>85</integer>
                <integer>90</integer>
                <integer>100</integer>
            </array>
        </dict>
        <key>control-id</key>
        <integer>17</integer>
    </dict>
    <key>LogControl</key>
    <integer>1</integer>
</dict>
How would that work for me? I thought we are to user the MacPro5,1 definition for it.?
Here is what I have set.<key>MacPro5,1</key> <dict>
<key>Vendor10deDevice1244</key>
<dict>
<key>Heuristic</key>
<dict>
<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>250</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>SensorSampleRate</key>
<integer>4</integer>
<key>TargetCount</key>
<integer>5</integer>
<key>Threshold_High</key>
<array>
<integer>55</integer>
<integer>40</integer>
<integer>60</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>75</integer>
<integer>90</integer>
<integer>100</integer>
</array>
</dict>
<key>LogControl</key>
<integer>0</integer>
<key>control-id</key>
<integer>18</integer>
</dict>
<key>Vendor10deDevice0640</key>
<dict>
<key>Heuristic</key>
<dict>
<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>250</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>SensorSampleRate</key>
<integer>4</integer>
<key>TargetCount</key>
<integer>5</integer>
<key>Threshold_High</key>
<array>
<integer>93</integer>
<integer>93</integer>
<integer>93</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>97</integer>
<integer>97</integer>
<integer>97</integer>
</array>
</dict>
<key>LogControl</key>
<integer>0</integer>
<key>control-id</key>
<integer>18</integer>
</dict>
<key>default-control-id</key>
<integer>18</integer>
</dict>
 
Joined
Dec 10, 2010
Messages
106
Motherboard
Gigabyte GA-B85-HD3
CPU
i5 4430
Graphics
RX 580
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
How would that work for me? I thought we are to user the MacPro5,1 definition for it.?
Here is what I have set.<key>MacPro5,1</key> <dict>

Try changing <key>Vendor10deDevice1244</key> to <key>GFX0</key>

You don't need to use MacPro5,1. I use iMac11,1 myself. I used to use MacPro4,1. You just need to make sure you are editing under the right system identifier. If you want to use MacPro5,1 then edit under that.
 
Joined
Feb 28, 2013
Messages
40
Motherboard
Gigabyte GA-Z270X-UD5
CPU
i7 7700K @ 5GHz 1.43V
Graphics
Saphire RX Vega 64
Mac
  1. Mac Pro
I'm glad a fix is being uncovered here...

i was wondering if it would work by backing up my current 10.8.2 agpm kext and the updating you 10.8.3 and the pasting my 10.8.2 agpm kext to overwrite the one from 10.8.3

has anyone tried copying their agpm kext from 10.8.2 over to replace 10.8.3 ??
 
Joined
Jul 18, 2012
Messages
12
Motherboard
OSX 10.8.2, W7 dual boot
CPU
i7 3770
Graphics
Gygabite GTX560Ti
Mac
Classic Mac
Mobile Phone
  1. Android
I have successfully patched the AGPM (1.8.3), the system works fine with a single display.
The problem comes when I connect the second display to the 560ti. System freezes again randomly and not wakeup properly
any ideas?
 
Joined
May 18, 2012
Messages
28
Motherboard
OS X 10.8.4 final (12E55)
CPU
i5-2500K
Graphics
nVidia GTX 560Ti
Mac
  1. MacBook Pro
Classic Mac
Mobile Phone
  1. iOS
I done everything twice to verify that I didn't miss something. I have a 550 Ti and device ID 1244. After playing a game such as Starcraft 2 and exiting it locked up. Another time I exited and then went to lock the screen and it frozen in the middle of the transition. I'm about to give up and fresh install. Last thing I will do is run Onyx instead of kext wizard. Or maybe change the 100 to 110. :-/

any last ideas?

If you haven't enabled logging, enable it, wait for a freeze to occur, reboot your computer, and look for a BOOT_TIME message in Console (it's highlighted in grey :)). Once you find it, look at what has happened before. If it was a fermi freeze, you should see some NVDA Channel exceptions or timeouts. Now, look further back for the last message from AGPM, so you can determine in which state your card was before the freeze. These messages look something like this: "AGPM: GPU = display G-state set to 2 from 1, ControlID = 18. SW occupancy updated.". Look at the state your card was going into, which is state 2 in this case. If it was going into state 3, then your patched AGPM does not work properly. However, if it was going into any other state, it means that your patched AGPM has worked fine and that, sadly, your card freezes in other states, too.

I've got a freeze today while I was checking out LuxMark (OpenCL). My card was in state 2 before the freeze occurred, and the first message from NVDA I've got was "NVDA(Compute): Channel timeout!", so perhaps it was indeed related to OpenCL. Ironically, I've been mining Bitcoins using OpenCL earlier today with no crashes whatsoever...
 
Top