Jump to content
Pavo

AGPM Injector kext generator app!!

104 posts in this topic

Recommended Posts

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.

 

 

Share this post


Link to post
Share on other sites
Advertisement
 

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.

Share this post


Link to post
Share on other sites
 

No, your App shows error if started in HS. I buld it for 10.13 Deployment (uploaded HS Version  few post before).

Bildschirmfoto 2019-01-06 um 16.39.26.jpg

Could you test this version to see if it will run on HS.

AGPMInjector.zip

Share this post


Link to post
Share on other sites
Posted (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?

 

Screen Shot 2019-01-08 at 3.02.40 PM.png

Edited by toleda

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites
Posted (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 by Pavo

Share this post


Link to post
Share on other sites
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?

 

Screen Shot 2019-01-08 at 3.02.40 PM.png

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

Share this post


Link to post
Share on other sites
Posted (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 by toleda

Share this post


Link to post
Share on other sites
Posted (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 by toleda

Share this post


Link to post
Share on other sites
Posted (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 by brousseau6933
More data

Share this post


Link to post
Share on other sites

Thanks, @Pavo for the app. I am using SMBIOS 17,1 before the kext control ID look like that;

 

1993389992_ScreenShot2019-01-10at19_11_33.png.39980cecba6b1622befd219863632ece.png

 

After adding to kext to other folders and after restart now showing 12; I think it is working.

 

943435609_ScreenShot2019-01-10at20_56_11.png.2e86fa8ef0f43e54da3f36b58460d331.png

 

Edited by telepati

Share this post


Link to post
Share on other sites
1 hour ago, telepati said:

Thanks, @Pavo for the app. I am using SMBIOS 17,1 before the kext control ID look like that;

 

1993389992_ScreenShot2019-01-10at19_11_33.png.39980cecba6b1622befd219863632ece.png

 

After adding to kext to other folders and after restart now showing 12; I think it is working.

 

943435609_ScreenShot2019-01-10at20_56_11.png.2e86fa8ef0f43e54da3f36b58460d331.png

 

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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

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 by tikizondo94

Share this post


Link to post
Share on other sites

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

8FK1IId.png

Edited by Pavo

Share this post


Link to post
Share on other sites
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

8FK1IId.png

have done a great work.

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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:

 

Screen Shot 2019-01-18 at 9.07.04 AM.png

Share this post


Link to post
Share on other sites
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:

 

Screen Shot 2019-01-18 at 9.07.04 AM.png

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.

43O095o.png

U5Z7b0g.png

AGPMInjector_2.3

Edited by Pavo

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×