Jump to content

AGPM Injector kext generator app!!


Pavo
146 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.

 

 

Link to comment
Share on other sites

 

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.

  • Like 1
Link to comment
Share on other sites

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
Link to comment
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!

Link to comment
Share on other sites

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
Link to comment
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

Link to comment
Share on other sites

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

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
  • Like 1
Link to comment
Share on other sites

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
  • Like 1
Link to comment
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
Link to comment
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.

  • Thanks 1
Link to comment
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
Link to comment
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
  • Like 6
  • Thanks 2
Link to comment
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.

Link to comment
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.

Link to comment
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

Link to comment
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
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

×
×
  • Create New...