mitch_de Posted January 6, 2019 Share Posted January 6, 2019 Yep, but if someone has an IGPU and use that .kext with dGPU he looses IGPU AGPM. Most users will have an CPU with iGPU i think. Buts no problem to add the missing IGPU part by copy it from the orig. .plist ( for used Mac Modell ) in the new .kext. PS: For my AMD RX 460 it make no difference in Speed, Temps or IDLE Temp using the kext or not. I think AMD has own AGPM in its drivers for their GPUs. So it maybe usefull for Nvidia GPU users. Link to comment Share on other sites More sharing options...
Pavo Posted January 6, 2019 Author Share Posted January 6, 2019 Yep, but if someone has an IGPU and use that .kext with dGPU he looses IGPU AGPM. Most users will have an CPU with iGPU i think. Buts no problem to add the missing IGPU part by copy it from the orig. .plist ( for used Mac Modell ) in the new .kext. Agree but I will look into adding support for iGPU in future update. PS: For my AMD RX 460 it make no difference in Speed, Temps or IDLE Temp using the kext or not. I think AMD has own AGPM in its drivers for their GPUs. So it maybe usefull for Nvidia GPU users. AMD AGPM settings still use AGPMController. There may be no difference in Speeds, Temps or Idle Temps but power being sent to the device is effected. AGPMController control-id 18 is for desktop dGPUs, so if you are using a desktop dGPU and original settings from system AGPM and if the control-id is say 17 (mobile dGPUs) you are limiting the power being sent to the device theoretically. I have seen a much smoother power usage when using the correct control-id for desktop dGPUs. 1 Link to comment Share on other sites More sharing options...
Pavo Posted January 6, 2019 Author Share Posted January 6, 2019 No, your App shows error if started in HS. I buld it for 10.13 Deployment (uploaded HS Version few post before). Could you test this version to see if it will run on HS. AGPMInjector.zip 1 Link to comment Share on other sites More sharing options...
iCanaro Posted January 6, 2019 Share Posted January 6, 2019 it works on high sierra Link to comment Share on other sites More sharing options...
Pavo Posted January 6, 2019 Author Share Posted January 6, 2019 it works on high sierra Ok thank you for testing, I will push an update to git. 2 Link to comment Share on other sites More sharing options...
toleda Posted January 8, 2019 Share Posted January 8, 2019 (edited) On 1/6/2019 at 10:39 AM, Pavo said: But the control-id for the GFX0 device is 17, which is for mobile GPUs. discrete GPUs should be using control-id 18 Statement suggests iMacPro1,1 Vega64 and Vega56 are mobile GPUs, true? Similar question with MacPro6,1/FirePro using control-ids 16 and 17, true? Edited January 8, 2019 by toleda Link to comment Share on other sites More sharing options...
jerryy2 Posted January 8, 2019 Share Posted January 8, 2019 It may be a combination of new things, but after installing this kext you built, I noticed an immediate graphics improvement while using photo editing software. Before, when editing 'largish' (4K - 5k, 16 - 20 MP) images, highly zoomed in, while moving in the image from one place to to another section, there would be a jerkiness or judder. Now the movement is very smooth, no flashing etc. This is using an i5-8400, AMD RX-580 setup. The combination of updates is Mohave 10.14.3 Beta (18D38a), Clover 4813 and this kext. Maybe tomorrow it will go back to as before, but for today, it is a good improvement. Thanks! Link to comment Share on other sites More sharing options...
Pavo Posted January 8, 2019 Author Share Posted January 8, 2019 (edited) 1 hour ago, toleda said: Statement suggests iMacPro1,1 Vega64 and Vega56 are mobile GPUs, true? Similar question with MacPro6,1/FirePro using control-ids 16 and 17, true? Ok maybe I may have mis spoke on calling those "mobile" GPUs, a better way to explain it is those GPUs, while those are dGPUs they're power distribution isn't. They receive they're power in which a way that is similar in how mobile GPUs work in power distribution wise. If you look at how the MacPro4,1/5,1 control their GPUs, it is the same way that PC desktop GPUs are powered, an external power connection that isn't part of the logic board's (motherboard for PCs) power distribution. So with that being said, it seems more logical that the control-id for "desktop" designed GPU power distribution would be the same as the MacPro4,1/5,1 GPU power distribution, which is why I am saying control-id=18 make the most sense. Edited January 8, 2019 by Pavo Link to comment Share on other sites More sharing options...
brousseau6933 Posted January 9, 2019 Share Posted January 9, 2019 5 hours ago, toleda said: Statement suggests iMacPro1,1 Vega64 and Vega56 are mobile GPUs, true? Similar question with MacPro6,1/FirePro using control-ids 16 and 17, true? Quick question toleda: I use your dagpm.kext with my build (iMac 14,2 with Radeon RX 580 - Mojave), should I modify the control-id to 18 in the kext as suggested by Pavo? It is now 17... Thanks, Patrice Link to comment Share on other sites More sharing options...
toleda Posted January 9, 2019 Share Posted January 9, 2019 (edited) 21 hours ago, Pavo said: If you look at how the MacPro4,1/5,1 control their GPUs, it is the same way that PC desktop GPUs are powered, an external power connection that isn't part of the logic board's (motherboard for PCs) power distribution. So with that being said, it seems more logical that the control-id for "desktop" designed GPU power distribution would be the same as the MacPro4,1/5,1 GPU power distribution, which is why I am saying control-id=18 make the most sense. I have not looked at the code to identify the differences between control-id 17 and 18. However, the iMacPro1,1 clearly satisfies "external" power delivery for Vega GPUs with control-id 17. The hardware difference is the "external" power cable(s) are lines on the motherboard. May have to wait for the MacPro7,1 for proof of this hypothesis. Edited January 9, 2019 by toleda Link to comment Share on other sites More sharing options...
toleda Posted January 9, 2019 Share Posted January 9, 2019 (edited) 17 hours ago, brousseau6933 said: I use your dagpm.kext with my build (iMac 14,2 with Radeon RX 580 - Mojave), should I modify the control-id to 18 in the kext as suggested by Pavo? dAGPM.kext enables AGPM for discrete graphics cards that are not natively supported and ensures the Heuristic ID (AMD, Intel or Nvidia) matches installed graphics. Set control-id to your preference. Edited January 9, 2019 by toleda 1 Link to comment Share on other sites More sharing options...
brousseau6933 Posted January 9, 2019 Share Posted January 9, 2019 (edited) 2 hours ago, toleda said: dAGPM.kext enables AGPM for discrete graphics cards that are not natively supported and ensures the Heuristic ID (AMD, Intel or Nvidia) matches installed graphics. Set control-id to your preference. Thanks, I'll check if it makes a difference in performance... EDIT, 1 hour later: No conclusive difference in my particular case (iMac 14,2 - Mojave - RX 580) with: - Geekbench Open CL compute; - GFXBench Metal; - Open GL extension viewer; - Cinebench. The variations are small in a way or the other and could be attributed to normal behavior. So, I'll keep Control-id 17... Edited January 9, 2019 by brousseau6933 More data 1 Link to comment Share on other sites More sharing options...
telepati Posted January 10, 2019 Share Posted January 10, 2019 (edited) Thanks, @Pavo for the app. I am using SMBIOS 17,1 before the kext control ID look like that; After adding to kext to other folders and after restart now showing 12; I think it is working. Edited January 10, 2019 by telepati Link to comment Share on other sites More sharing options...
Pavo Posted January 10, 2019 Author Share Posted January 10, 2019 1 hour ago, telepati said: Thanks, @Pavo for the app. I am using SMBIOS 17,1 before the kext control ID look like that; After adding to kext to other folders and after restart now showing 12; I think it is working. Yes its working but as you should be aware, my app doesn't currently support using dGPU with iGPU, so as you can see, you lost iGPU properties. 1 Link to comment Share on other sites More sharing options...
bbeepp Posted January 10, 2019 Share Posted January 10, 2019 On 1/6/2019 at 7:39 PM, Pavo said: Ok thank you for testing, I will push an update to git. Could you make it work in Sierra too? Link to comment Share on other sites More sharing options...
tikizondo94 Posted January 10, 2019 Share Posted January 10, 2019 (edited) So, if we are currently using Intel Qsync, will adding this kext cause any issues? I noticed my iGPU properties no longer show in X86PlatformPlugin/AGPMEnabler/AGPMController/Machine. Nevermind, Just had to add my IGPU properties to the newly greated AGPM kext. All shows normal now Edited January 12, 2019 by tikizondo94 Link to comment Share on other sites More sharing options...
Pavo Posted January 13, 2019 Author Share Posted January 13, 2019 (edited) iGPU has been added to AGPMInjector for version 2.0. This will add iGPU AGPM properties based off what CPU type your SMBIOS selection is. If you have CSM disabled and iGPU disabled in BIOS you do not ever need to check Yes for iGPU enabled. AGPMInjector_2.0.zip Edited January 13, 2019 by Pavo 6 2 Link to comment Share on other sites More sharing options...
xtddd Posted January 14, 2019 Share Posted January 14, 2019 2 hours ago, Pavo said: iGPU has been added to AGPMInjector for version 2.0. This will add iGPU AGPM properties based off what CPU type your SMBIOS selection is. If you have CSM disabled and iGPU disabled in BIOS you do not ever need to check Yes for iGPU enabled. AGPMInjector_2.0.zip have done a great work. Link to comment Share on other sites More sharing options...
Pavo Posted January 14, 2019 Author Share Posted January 14, 2019 AGPMInjector v2.1 released. AGPMInjector_2.1.zip 5 2 Link to comment Share on other sites More sharing options...
syn909 Posted January 15, 2019 Share Posted January 15, 2019 Curious I have two 1070 cards one at gfx0 and the other at gfx1 is it possible to get this to work with the second card at gfx1? Thanks! Link to comment Share on other sites More sharing options...
Pavo Posted January 15, 2019 Author Share Posted January 15, 2019 1 hour ago, syn909 said: Curious I have two 1070 cards one at gfx0 and the other at gfx1 is it possible to get this to work with the second card at gfx1? Thanks! It is possible but you would have to add the GFX1 property manually. I am working on adding support to be able to add multiple dGPUs but that will not come until after more use cases request that feature to be added. Link to comment Share on other sites More sharing options...
syn909 Posted January 18, 2019 Share Posted January 18, 2019 On 1/15/2019 at 2:27 PM, Pavo said: It is possible but you would have to add the GFX1 property manually. I am working on adding support to be able to add multiple dGPUs but that will not come until after more use cases request that feature to be added. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleShortVersionString</key> <string>1.0-AGPMInjector</string> <key>CFBundleIdentifier</key> <string>com.apple.driver.AGPMInjector</string> <key>OSBundleRequired</key> <string>Safe Boot</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleVersion</key> <string>110.23.37</string> <key>CFBundleGetInfoString</key> <string>110.23.37, Copyright 2008-2016 Apple Inc. All rights reserved.</string> <key>CFBundleSignature</key> <string>????</string> <key>IOKitPersonalities</key> <dict> <key>AGPM</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.AGPM</string> <key>IOProviderClass</key> <string>IOPlatformPluginDevice</string> <key>IOClass</key> <string>AGPMController</string> <key>Machines</key> <dict> <key>iMacPro1,1</key> <dict> <key>GFX0</key> <dict> <key>Heuristic</key> <dict> <key>ID</key> <integer>0</integer> </dict> <key>max-power-state</key> <integer>15</integer> <key>AGDCEnabled</key> <integer>1</integer> <key>control-id</key> <integer>18</integer> <key>min-power-state</key> <integer>0</integer> </dict> </dict> </dict> <key>IONameMatch</key> <string>AGPMEnabler</string> </dict> </dict> <dict> <key>AGPM</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.AGPM</string> <key>IOProviderClass</key> <string>IOPlatformPluginDevice</string> <key>IOClass</key> <string>AGPMController</string> <key>Machines</key> <dict> <key>iMacPro1,1</key> <dict> <key>GFX1</key> <dict> <key>Heuristic</key> <dict> <key>ID</key> <integer>0</integer> </dict> <key>max-power-state</key> <integer>15</integer> <key>AGDCEnabled</key> <integer>1</integer> <key>control-id</key> <integer>18</integer> <key>min-power-state</key> <integer>0</integer> </dict> </dict> </dict> <key>IONameMatch</key> <string>AGPMEnabler</string> </dict> </dict> <key>CFBundlePackageType</key> <string>KEXT</string> <key>BuildMachineOSBuild</key> <string>16B2657</string> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>NSHumanReadableCopyright</key> <string>Copyright © 2008-2016 Apple Inc. All rights reserved.</string> <key>CFBundleName</key> <string>AGPMInjector</string> </dict> </plist> Can you confirm the above code is correct where I manually added the GFX1 id, I was not sure if the <key>ID</key> <integer>0</integer> had a relationship to GFX id. Also not sure this is working see ioreg screenshot: Link to comment Share on other sites More sharing options...
Pavo Posted January 18, 2019 Author Share Posted January 18, 2019 (edited) 2 hours ago, syn909 said: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleShortVersionString</key> <string>1.0-AGPMInjector</string> <key>CFBundleIdentifier</key> <string>com.apple.driver.AGPMInjector</string> <key>OSBundleRequired</key> <string>Safe Boot</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleVersion</key> <string>110.23.37</string> <key>CFBundleGetInfoString</key> <string>110.23.37, Copyright 2008-2016 Apple Inc. All rights reserved.</string> <key>CFBundleSignature</key> <string>????</string> <key>IOKitPersonalities</key> <dict> <key>AGPM</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.AGPM</string> <key>IOProviderClass</key> <string>IOPlatformPluginDevice</string> <key>IOClass</key> <string>AGPMController</string> <key>Machines</key> <dict> <key>iMacPro1,1</key> <dict> <key>GFX0</key> <dict> <key>Heuristic</key> <dict> <key>ID</key> <integer>0</integer> </dict> <key>max-power-state</key> <integer>15</integer> <key>AGDCEnabled</key> <integer>1</integer> <key>control-id</key> <integer>18</integer> <key>min-power-state</key> <integer>0</integer> </dict> </dict> </dict> <key>IONameMatch</key> <string>AGPMEnabler</string> </dict> </dict> <dict> <key>AGPM</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.AGPM</string> <key>IOProviderClass</key> <string>IOPlatformPluginDevice</string> <key>IOClass</key> <string>AGPMController</string> <key>Machines</key> <dict> <key>iMacPro1,1</key> <dict> <key>GFX1</key> <dict> <key>Heuristic</key> <dict> <key>ID</key> <integer>0</integer> </dict> <key>max-power-state</key> <integer>15</integer> <key>AGDCEnabled</key> <integer>1</integer> <key>control-id</key> <integer>18</integer> <key>min-power-state</key> <integer>0</integer> </dict> </dict> </dict> <key>IONameMatch</key> <string>AGPMEnabler</string> </dict> </dict> <key>CFBundlePackageType</key> <string>KEXT</string> <key>BuildMachineOSBuild</key> <string>16B2657</string> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>NSHumanReadableCopyright</key> <string>Copyright © 2008-2016 Apple Inc. All rights reserved.</string> <key>CFBundleName</key> <string>AGPMInjector</string> </dict> </plist> Can you confirm the above code is correct where I manually added the GFX1 id, I was not sure if the <key>ID</key> <integer>0</integer> had a relationship to GFX id. Also not sure this is working see ioreg screenshot: That doesn't look right at all. Here is what it should look like if your GPU devices in IOReg are named GFX0 and GFX1 AGPMInjector.kext.zip AGPMInjector 2.3 released. Noticed that you wouldn't know if the app generated the files or not so added a notification for both when generated and if file already exist. AGPMInjector_2.3 Edited January 18, 2019 by Pavo 2 1 Link to comment Share on other sites More sharing options...
Pavo Posted January 19, 2019 Author Share Posted January 19, 2019 If you are using AGPMInjector 2.3 please update as soon as possible to 2.3.3. 2.3 had a major encoding bug that messed up the kext when it was generated and it will not work. This issue has been fixed in 2.3.3 AGPMInjector_2.3.3 2 Link to comment Share on other sites More sharing options...
Pavo Posted January 20, 2019 Author Share Posted January 20, 2019 Added user notification if there is an update on Github AGPMInjector_2.3.4 1 1 Link to comment Share on other sites More sharing options...
Recommended Posts