Jump to content

[Notebook] AGPM works only with battery


maRRRco
 Share

4 posts in this topic

Recommended Posts

Ok, so, here the issue:

I use MacBook Pro 5.1 smbios in my laptop with Yosemite and chameleon.

My graphic card is a geforce g105m (9300gt).

If I delete agpm.kext I can get a basic power management with all states working even if the transition is slow and the graphic is laggy.

With agpm.kext I get the same behavior.

So I tried to edit it. There are two voices for MacBook Pro 5,1: IGPU and GFX0, change them doesn't do nothing, but if I add my Vendor instead of IGPU something happens. I can change threshold values according to my preferences and the gpu follow them with smooth graphics response also in the max conservative state, but this work ... only if I don't use ac plug, so only with battery. When I connect the laptop to ac adapter the gpu only uses two states at high frequency, and the behaviour doesn't follow more agpm.kext.

So, why this kext work only with battery and not with ac adapter ?

<key>MacBookPro5,1</key>
				<dict>
					<key>Vendor10deDevice06ec</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>SensorSampleRate</key>
							<integer>4</integer>
							<key>TargetCount</key>
							<integer>1</integer>
							<key>Threshold_High</key>
							<array>
								<integer>40</integer>
								<integer>70</integer>
								<integer>80</integer>
								<integer>100</integer>
							</array>
							<key>Threshold_Low</key>
							<array>
								<integer>0</integer>
								<integer>50</integer>
								<integer>60</integer>
								<integer>90</integer>
							</array>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
					</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>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>
					</dict>
					<key>LogControl</key>
					<integer>0</integer>
				</dict>

Link to comment
Share on other sites

Hi,

 

In the AGPM info.plist, you should replace IGPU instead of GFX0, leave GFX0 as is.

 

That doesn't work. At login the kext is loaded by in console I can't see any states changing. There is only a basic power management probably made by bios or card itself.

I have to inject my vendor instead of GFX0 and I can get agpm working, but only with the battery.

Without battery the log show that gpu stucks at state 1, and sometimes enters state 0.

The strange thing is that there is an event almost every second, showing agpm controller that set p state 1

Link to comment
Share on other sites

  • 2 weeks later...

Change your dsdt device to GFX0 then edit the ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacBookPro5_1.plist
 

<dict>
				<key>ControlIDArray</key>
				<array>
					<integer>16</integer>
					<integer>17</integer>
					<integer>18</integer>
				</array>
				<key>Description</key>
				<string>SMC_GPU_Range_Control_Loop</string>
				<key>GPUControlInfoDict</key>
				<dict>
					<key>CIA1</key>
					<array>
						<integer>1</integer>
						<integer>17</integer>
						<integer>16</integer>
					</array>
					<key>MacBookPro5,1</key>
					<string>CIA1</string>
				</dict>

 
from 1 to 3, red number which means lowest state, use 3 instead of 1 or 2, i recommend 2 maybe 3 is a bit laggy, or whatever you want, happy testing

Link to comment
Share on other sites

 Share

×
×
  • Create New...