Jump to content

[GUIDE] Edit AppleGraphicsPowerManagement.kext to unleash nvidia's GTX 570/580 full power and save energy at the same time.


Jordan2Delta
 Share

77 posts in this topic

Recommended Posts

Try monitoring the core voltage, core frequency, and memory frequency of the GPU to see if it's really not clocking down, or if the temperatures are staying high for some other reason.

 

Thanks for the tip. I was using iStat Menus 3 and didn't have a GPU clock reading so I was always going by the temp. I installed the v4 demo and it shows the GPU clock speed (HWSensors also shows this). Freshly booted, the card was idling at 324MHz. When I ran LuxMark it clocked up to 1.17GHz. After the benchmark finished it dropped to 1GHz and it's been sitting at that since.

Link to comment
Share on other sites

The iMac13,2 models has a 660 already present in Info.plist, just try changing the deviceID to the one of your 660Ti.

you mean i dont have to make any other edits other than changing a device id somewhere in the file? how do i find my device id?
Link to comment
Share on other sites

you mean i dont have to make any other edits other than changing a device id somewhere in the file? how do i find my device id?

 

Correct, until we know more about Apple's Kepler AGPM Syntax. The only thing I know for sure Kepler cards use and ID of 4, while FERMI cards use 0. You can find your NVidia GPU's Device ID in System Information.

 

Goto Apple Menu > About this Mac (while holding the option key) > System Information...

 

To find the Device ID to edit in the Info.plist you can check this link out:

 

https://developer.nvidia.com/sites/default/files/akamai/device_ids_jan13.txt

 

Good luck!

 

Mrengles

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Hello, I have a GTX 670m 3GB and usually have freezes when I switch states. I'm using SMBIOS MacBookPro 9,1 and LegacyAGPM with nvidia drivers for 10.8.4. Does anyone have any tips for me?

 

Attached is my darwindumper and LegacyAGPM - http://www.sendspace.com/file/pvcxeh

 

Correct, until we know more about Apple's Kepler AGPM Syntax. The only thing I know for sure Kepler cards use and ID of 4, while FERMI cards use 0. You can find your NVidia GPU's Device ID in System Information.

 

Goto Apple Menu > About this Mac (while holding the option key) > System Information...

 

To find the Device ID to edit in the Info.plist you can check this link out:

 

https://developer.nv...e_ids_jan13.txt

 

Good luck!

 

Mrengles

 

 

Hello, I have a GTX 670m 3GB and usually have freezes when I switch states. I'm using SMBIOS MacBookPro 9,1 and LegacyAGPM with nvidia drivers for 10.8.4. Does anyone have any tips for me?

 

Attached is my darwindumper and LegacyAGPM - http://www.sendspace.com/file/pvcxeh

Link to comment
Share on other sites

  • 3 weeks later...

@R Freeman

 

I don't know if the cards not ramping down or it's a problem with FakeSMC/HWSensors displaying the GPU sensor info. Because with LogControl=1 I see the GPU getting to State 3 on idle.

 

I saw that too but as well my temps and gpu core stay at the highest level and never ramp down to the idle states. I only hope there will be a new MacPro with a kepler card and then things should be a little clearer.

Link to comment
Share on other sites

  • 1 month later...

I saw that too but as well my temps and gpu core stay at the highest level and never ramp down to the idle states. I only hope there will be a new MacPro with a kepler card and then things should be a little clearer.

 

I have a Kepler card myself and I was hoping, too, that sooner or later Apple would have a Mac with a desktop Kepler card. Well, fat chance now... So, I started to experiement a bit and if I'm not mistaken I have good news about power management for Kepler.

 

First, I tried to get power management working, patching the Info.plist in AppleGraphicsPowerManagement.kext. I got to the point where OS X recognised my card, and loaded the section I wanted, i.e. system.log had an entry like this on boot:

kernel[0]: [AGPM Controller] build GPUDict by Vendor10deDevice1189

For the actual content I tried variations based on the GTX 680M and similar cards Apple has details on. Unfortunately, I never saw any entries in the logfile about OS X trying to switch power states. So, clearly something wasn't working. At the same time though, my system is very quiet and I'm pretty sure that if the GPU was running at full clock I would be able to hear the GPU fan over the rest. I didn't.

 

Next, I thought that this is about power management and therefore changes would also be observable with a power meter on the wall. I plugged that in and measured a couple of things: idle power consumption, power consumption while playing 1080p in Youtube (Firefox), running the OpenGL test in Cinebench. Readings are averaged. I repeated this with AGPM not building a GPUDict, i.e. AGPM unknownPlatform, and, as a control, the same thing on Windows 7, which presumably has fully working power management. Results:

 

                      idle  youtube cinebench

AGPM with GPUDict      59W    ~64W    ~130W

AGPM unknown platform  59W    ~64W    ~130W

Windows 7              59W    ~64W    ~130W

 

I also checked whether the system returned to the measured idle power consumption after running Cinebench. It did. If I read this right then we don't have to do anything at all to get power management working for Desktop Kepler cards, right?

 

Unfortunately, there is a fly in the ointment, though. The Cinebench result under OS X (in both configurations) is 48fps, while on Windows it's 62fps. Does that mean the card doesn't ramp up properly under OS X? But why the increased power consumption? Which is identical to the Windows one?

Link to comment
Share on other sites

Hey!

I am actually interested in AGPM for GTX660 OC too! The system integrated powermanagment for my card gives me about 25 % less power in benchmarks compared to windows and the same benchmark!

Therefore I recently dumped my videocard bios and looked it up with kepler bios tweaker 1.25 to see the boost states and other configurations.

To be honest I am a bit overstrained about transfering the given information into the info.plist!

As far as I understand it I have 4 boost-profils P00 P02 P05 and P08 where P08 is the idle profil and P00 ist the boost profil?!

 

So EnergyPstate should have the value 8 for the profil P08 (windows idle´s at 324mhz).

 

What I don´t get is how to transfer the possible steps 0 to 44 (according to the picture) into the profil.

 

Any idea is welcome :)


b3a.png stf.png oci0.png zpx.png 9st.png





 


                    <key>Vendor10deDevice11c0</key>
                    <dict>
                        <key>BoostPState</key>
                        <array>
                            <integer>12</integer>
                            <integer>12</integer>
                            <integer>12</integer>
                            <integer>12</integer>
                        </array>
                        <key>BoostTime</key>
                        <array>
                            <integer>1</integer>
                            <integer>1</integer>
                            <integer>1</integer>
                            <integer>1</integer>
                        </array>
                        <key>Heuristic</key>
                        <dict>
                            <key>EnableEnergyPstate</key>
                            <integer>1</integer>
                            <key>EnergyDOWNThreshold</key>
                            <integer>60</integer>
                            <key>EnergyPstate</key>
                            <integer>8</integer>
                            <key>EnergyUPThreshold</key>
                            <integer>80</integer>
                            <key>EngineDOWNThreshold</key>
                            <integer>15</integer>
                            <key>EngineUPThreshold</key>
                            <integer>30</integer>
                            <key>ID</key>
                            <integer>4</integer>
                            <key>MemDOWNThreshold</key>
                            <integer>30</integer>
                            <key>MemUPThreshold</key>
                            <integer>50</integer>
                            <key>MinP0</key>
                            <integer>13</integer>
                            <key>MinP5</key>
                            <integer>12</integer>
                            <key>MinP8</key>
                            <integer>13</integer>
                            <key>MinVP0</key>
                            <integer>11</integer>
                            <key>MinVP1</key>
                            <integer>23</integer>
                            <key>MinVP5</key>
                            <integer>34</integer>
                            <key>MinVP8</key>
                            <integer>36</integer>
                            <key>NumOfPstates</key>
                            <integer>14</integer>
                            <key>NumOfVPstates</key>
                            <integer>37</integer>
                            <key>P0Table</key>
                            <array>
                                <integer>0</integer>
                                <integer>1</integer>
                                <integer>2</integer>
                                <integer>3</integer>
                                <integer>4</integer>
                                <integer>5</integer>
                                <integer>6</integer>
                                <integer>7</integer>
                                <integer>8</integer>
                                <integer>9</integer>
                                <integer>10</integer>
                                <integer>11</integer>
                                <integer>34</integer>
                                <integer>36</integer>
                            </array>
                            <key>P1Table</key>
                            <array>
                                <integer>12</integer>
                                <integer>13</integer>
                                <integer>14</integer>
                                <integer>15</integer>
                                <integer>16</integer>
                                <integer>17</integer>
                                <integer>18</integer>
                                <integer>19</integer>
                                <integer>20</integer>
                                <integer>21</integer>
                                <integer>22</integer>
                                <integer>23</integer>
                                <integer>34</integer>
                                <integer>36</integer>
                            </array>
                        </dict>
                        <key>control-id</key>
                        <integer>17</integer>
                    </dict>

 

Link to comment
Share on other sites

  • 4 months later...

How and why to edit thresholds for AppleGraphicsPowerManagement.kext (AGPM)

I based my research on the GTX 570 but the basics should be valid to any other nvidia card, e.g. Fermi based: 460/470/480/550/560 too.

 

First of all the bad news. I couldn't get Lion as smooth as I had hoped for. I still think my previous Ati 5770 was better in that regards. Although in Novabench it only reaches ~800fps whereas the GTX 570 easily hits more than 2500fps!! Oh, don't get me started on cinebench. I get about 37fps with the Ati 5770 and only 30fps with the GTX 570 with both modes above.

First, a big thanks for this posting. I was getting lots of windowserver crashes prior to editing the AGPM kext.

 

After my first edits, I was getting similar Cinebench results (35) to those quoted above on my GTX 560 ti on 10.9 using the conservative setting in the first post. I later changed Info.plist in the AGPM kext as follows:

                                <key>MacPro5,1</key>
                                <dict>
                                        <key>Vendor10deDevice1200</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>25</integer>
                                                                <integer>75</integer>
                                                                <integer>90</integer>
                                                                <integer>100</integer>
                                                        </array>
                                                        <key>Threshold_Low</key>
                                                        <array>
                                                                <integer>0</integer>
                                                                <integer>0</integer>
                                                                <integer>94</integer>
                                                                <integer>98</integer>
                                                        </array>
                                                </dict>
                                                <key>LogControl</key>
                                                <integer>1</integer>
                                                <key>control-id</key>
                                                <integer>18</integer>
                                        </dict>

I'm no ace at this by any stretch. My goal is to get to the higher power states faster and at lower levels, and remain there longer. I imagine there's still some refinement needed.

 

I monitored my GPU core frequency with HWMonitor while I was benchmarking. When seeing the lower than expected scores, my GPU was typically at 405MHz. With the above settings, my benchmarks improved dramatically and my GPU mostly remained at 822MHz while testing. When the benchmark finished, my GPU core dropped to 50MHz.

 

My Cinebench results improved as follows:

 

post-440440-0-25645900-1383682684_thumb.png

 

My Novabench score hits 1121. Certainly no GTX 570!

 

My Heaven benchmark improved significantly. However, I noted that every 6 seconds the video would stutter. The graph of my CPU Core speed showed a corresponding frequency drop. I'm guessing that I'll need to further adjust the Threshold_Low figures. However, I'm wondering if adjusting the intervals or sample rates might help. I'd be grateful for any feedback.

 

post-440440-0-67400400-1383682698_thumb.png

 

I think my logs convey this stutter (note the 6 second interval): 

11/5/13 3:03:40.000 PM kernel[0]: AGPM: updateGPUHwPstate(1, 0): fHwPstate = 0 fFB = 0xffffff8020acc800
11/5/13 3:03:40.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 1. Calling fFB->setAggressiveness()...
11/5/13 3:03:40.000 PM kernel[0]: AGPM: GPU = display G-state set to 1 from 0, ControlID = 18. SW occupancy updated.
11/5/13 3:03:41.000 PM kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 1 fFB = 0xffffff8020acc800
11/5/13 3:03:41.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 0. Calling fFB->setAggressiveness()...
11/5/13 3:03:41.000 PM kernel[0]: AGPM: GPU = display G-state set to 0 from 1, ControlID = 18. SW occupancy updated.
11/5/13 3:03:47.000 PM kernel[0]: AGPM: updateGPUHwPstate(1, 0): fHwPstate = 0 fFB = 0xffffff8020acc800
11/5/13 3:03:47.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 1. Calling fFB->setAggressiveness()...
11/5/13 3:03:47.000 PM kernel[0]: AGPM: GPU = display G-state set to 1 from 0, ControlID = 18. SW occupancy updated.
11/5/13 3:03:48.000 PM kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 1 fFB = 0xffffff8020acc800
11/5/13 3:03:48.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 0. Calling fFB->setAggressiveness()...
11/5/13 3:03:48.000 PM kernel[0]: AGPM: GPU = display G-state set to 0 from 1, ControlID = 18. SW occupancy updated.
11/5/13 3:03:54.000 PM kernel[0]: AGPM: updateGPUHwPstate(1, 0): fHwPstate = 0 fFB = 0xffffff8020acc800
11/5/13 3:03:54.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 1. Calling fFB->setAggressiveness()...
11/5/13 3:03:54.000 PM kernel[0]: AGPM: GPU = display G-state set to 1 from 0, ControlID = 18. SW occupancy updated.
11/5/13 3:03:55.000 PM kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 1 fFB = 0xffffff8020acc800
11/5/13 3:03:55.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 0. Calling fFB->setAggressiveness()...
11/5/13 3:03:55.000 PM kernel[0]: AGPM: GPU = display G-state set to 0 from 1, ControlID = 18. SW occupancy updated.
11/5/13 3:04:01.000 PM kernel[0]: AGPM: updateGPUHwPstate(1, 0): fHwPstate = 0 fFB = 0xffffff8020acc800
11/5/13 3:04:01.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 1. Calling fFB->setAggressiveness()...
11/5/13 3:04:01.000 PM kernel[0]: AGPM: GPU = display G-state set to 1 from 0, ControlID = 18. SW occupancy updated.
11/5/13 3:04:02.000 PM kernel[0]: AGPM: updateGPUHwPstate(0, 0): fHwPstate = 1 fFB = 0xffffff8020acc800
11/5/13 3:04:02.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 0. Calling fFB->setAggressiveness()...
11/5/13 3:04:02.000 PM kernel[0]: AGPM: GPU = display G-state set to 0 from 1, ControlID = 18. SW occupancy updated.
11/5/13 3:04:08.000 PM kernel[0]: AGPM: updateGPUHwPstate(1, 0): fHwPstate = 0 fFB = 0xffffff8020acc800
11/5/13 3:04:08.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 1. Calling fFB->setAggressiveness()...
11/5/13 3:04:08.000 PM kernel[0]: AGPM: GPU = display G-state set to 1 from 0, ControlID = 18. SW occupancy updated.
11/5/13 3:04:14.000 PM kernel[0]: AGPM: updateGPUHwPstate(2, 0): fHwPstate = 1 fFB = 0xffffff8020acc800
11/5/13 3:04:14.000 PM kernel[0]: AGPM: updateGPUHwPstate(): state = 2. Calling fFB->setAggressiveness()...
11/5/13 3:04:14.000 PM kernel[0]: AGPM: GPU = display G-state set to 2 from 1, ControlID = 18. SW occupancy updated.
Link to comment
Share on other sites

I made the following change:

<key>Threshold_Low</key>
<array>
        <integer>0</integer>
        <integer>97</integer>
        <integer>97</integer>
        <integer>98</integer>
</array>

My Cinebench R15 score when up to 93. The stuttering in Heaven is gone.

 

While typing this, my GPU core reads 50MHz, but after I navigate some web sites, the core goes to 405MHz and sticks there for quite a while. I may try 0,95,95,97 next.

 

UPDATE: 0,95,95,97: GPU core doesn't idle at 405MHz for near as long. Cinebench score hovering around 90. No stuttering in Heaven. I think I'll keep these settings for a while.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Hi. Thank you for your research.

After editing I got this in my log. Is this normal?

[AGPM Controller] build GPUDict by Vendor10deDevice1081
AGPM: GPU = PEGP Initialized, Control ID 18
EDID CEA Extensions not valid for audio [Revision ID]: 1 (minimum value: 3)
ACPI_SMC_GPU_CtrlLoop: NOTE: ignoring mismatched primary control with ID:18
Link to comment
Share on other sites

 

Hi. Thank you for your research.

After editing I got this in my log. Is this normal?

[AGPM Controller] build GPUDict by Vendor10deDevice1081
AGPM: GPU = PEGP Initialized, Control ID 18
EDID CEA Extensions not valid for audio [Revision ID]: 1 (minimum value: 3)
ACPI_SMC_GPU_CtrlLoop: NOTE: ignoring mismatched primary control with ID:18

try change the control id to 17

Link to comment
Share on other sites

  • 4 months later...

Hello and thanks for providing all this invaluable information. Unfortunately i can't wrap my brain around it.

 

I have the GT330M in my MacBook Pro and would like to achieve this:

Switch only between state 3 (low) and 2 (medium), leaving state 1 (high) completely out.

 

Why? I'd like to prolong the life time of my second logic board (yeah, recently replaced).

I might miss out on a lot of performance, but that performance would be still way better than what the internal intel chip provides.

 

This is the part of the plist for my GT330M. If anyone could tell me which parts i would have to change and how to achieve my goal, i would be very grateful.

<key>MacBookPro6,2</key>
				<dict>
					<key>LogControl</key>
					<integer>0</integer>
					<key>Vendor8086Device0046</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>BusyDownThresholdPercent</key>
							<integer>65</integer>
							<key>BusyUpThresholdPercent</key>
							<integer>80</integer>
							<key>DiagnosticModeDefault</key>
							<integer>0</integer>
							<key>EvaluateDownInterval</key>
							<integer>350000</integer>
							<key>EvaluateUpInterval</key>
							<integer>66000</integer>
							<key>ID</key>
							<integer>2</integer>
							<key>SensorOption</key>
							<integer>1</integer>
						</dict>
						<key>HeuristicOld</key>
						<dict>
							<key>ID</key>
							<integer>1</integer>
							<key>IdleInterval</key>
							<integer>100</integer>
							<key>SensorOption</key>
							<integer>1</integer>
							<key>Threshold_High</key>
							<array>
								<integer>50</integer>
								<integer>75</integer>
								<integer>96</integer>
								<integer>100</integer>
							</array>
							<key>Threshold_High_v</key>
							<array>
								<integer>70</integer>
								<integer>85</integer>
								<integer>94</integer>
								<integer>100</integer>
							</array>
							<key>Threshold_Low</key>
							<array>
								<integer>0</integer>
								<integer>40</integer>
								<integer>55</integer>
								<integer>92</integer>
							</array>
							<key>Threshold_Low_v</key>
							<array>
								<integer>0</integer>
								<integer>50</integer>
								<integer>60</integer>
								<integer>92</integer>
							</array>
						</dict>
						<key>control-id</key>
						<integer>16</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
				</dict>

Here at the end is a "max-power-state". Would it maybe be enough to just lower the number? Is this an indicator for how much the GPU can ramp up?

Link to comment
Share on other sites

Hello and thanks for providing all this invaluable information. Unfortunately i can't wrap my brain around it.

 

I have the GT330M in my MacBook Pro and would like to achieve this:

Switch only between state 3 (low) and 2 (medium), leaving state 1 (high) completely out.

 

Why? I'd like to prolong the life time of my second logic board (yeah, recently replaced).

I might miss out on a lot of performance, but that performance would be still way better than what the internal intel chip provides.

 

This is the part of the plist for my GT330M. If anyone could tell me which parts i would have to change and how to achieve my goal, i would be very grateful.

<key>MacBookPro6,2</key>
				<dict>
					<key>LogControl</key>
					<integer>0</integer>
					<key>Vendor8086Device0046</key>
					<dict>
			

Here at the end is a "max-power-state". Would it maybe be enough to just lower the number? Is this an indicator for how much the GPU can ramp up?

...hmm, you write of GT330m...but the example you show from AGPM is clearly for GMA 5700MHD...this will not end well... :smoke: ...your device is nvidia so,...

 

 

...you might want to start here.. i think you have this model: MacBookPro 2010...  from plist of AGPM ..

 

<key>MacBookPro7,1</key>

                <dict>

                    <key>IGPU</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>1</integer>

                            <key>IdleInterval</key>

                            <integer>100</integer>

                            <key>SensorOption</key>

                            <integer>1</integer>

                            <key>Threshold_High</key>

                            <array>

                                <integer>96</integer>

                                <integer>96</integer>

                                <integer>96</integer>

                                <integer>100</integer>

                            </array>

                            <key>Threshold_High_v</key>

                            <array>

                                <integer>70</integer>

                                <integer>85</integer>

                                <integer>94</integer>

                                <integer>100</integer>

                            </array>

                            <key>Threshold_Low</key>

                            <array>

                                <integer>0</integer>

                                <integer>88</integer>

                                <integer>88</integer>

                                <integer>92</integer>

                            </array>

                            <key>Threshold_Low_v</key>

                            <array>

                                <integer>0</integer>

                                <integer>50</integer>

                                <integer>60</integer>

                                <integer>92</integer>

                            </array>

                        </dict>

                        <key>QSC</key>

                        <dict>

                            <key>Enabled</key>

                            <integer>1</integer>

                            <key>Mode</key>

                            <integer>0</integer>

                            <key>PStateOffTime</key>

                            <array>

                                <integer>0</integer>

                                <integer>11200</integer>

                                <integer>9000</integer>

                                <integer>0</integer>

                            </array>

                            <key>PStateOnTime</key>

                            <array>

                                <integer>0</integer>

                                <integer>4800</integer>

                                <integer>7000</integer>

                                <integer>0</integer>

                            </array>

                        </dict>

                        <key>control-id</key>

                        <integer>16</integer>

                    </dict>

                    <key>LogControl</key>

                    <integer>0</integer>

                </dict>

 

Link to comment
Share on other sites

  • 5 months later...

Gigabyte GTX 580 1,5gb on mountain lion 10.8.5. This is the best AGPM config for me, it work perfectly and with very low latency ( g states switching very fast) :)

 

<key>MacPro5,1</key>
                <dict>
                       <key>Vendor10deDevice1080</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>70</integer>
                                 <integer>70</integer>
                                 <integer>87</integer>
                                 <integer>100</integer>
                             </array>
                             <key>Threshold_Low</key>
                             <array>
                                 <integer>0</integer>
                                 <integer>70</integer>
                                 <integer>87</integer>
                                 <integer>95</integer>
                             </array>
                         </dict>
                         <key>LogControl</key>
                         <integer>1</integer>
                         <key>control-id</key>
                         <integer>18</integer>
                     </dict>               

Link to comment
Share on other sites

  • 1 month later...

only one question:

 

once you have modified your applepowermanager.kext and all works in yours configurations, when you stop the hackintosh in sleep mode, when you come back to desktop all works for you again?

 

because in my laptop, with nvidia 9800m GTS,  after the wake up from the sleep mode, the gpu works only at maximum voltage and frequency ... sorry for my bad english..

Link to comment
Share on other sites

  • 4 months later...
  • 2 weeks later...

Ive been using 1 display and 10.10.3 then noticed that when my screen would sleep the GPU would stick at 795mhz (580gtx)

Reinstalled 10.10.2 and still seem to have this lol odd

 

This should work... right? Its what fwood had on his. plistedit pro says the full plist is fine and no errors. Using Mac mini 6,2 def 

 

<key>Mac-F65AE981FFA204ED</key>

<dict>
<key>Vendor10deDevice1080</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>70</integer>
<integer>70</integer>
<integer>87</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>70</integer>
<integer>87</integer>
<integer>95</integer>
</array>
</dict>
<key>LogControl</key>
<integer>1</integer>
<key>control-id</key>
<integer>18</integer>
</dict>
</dict>
Link to comment
Share on other sites

 Share

×
×
  • Create New...