Contribute
Register

[Solved] Sapphire RX 580 Nitro+ SE | black screen on HDMI and DVI

Status
Not open for further replies.
Without OS managing the CPU, sleep will most likely not work.
The AICPM.kext also helps with core task allocation to multiple threads during load, temp monitoring (hence fan control), slowing down the CPU, and such things. It's a bit more intelligent than what the BIOS can do.

However, if your BIOS implementation is good, you may not notice too much difference.

Test using AppleIntelInfo.kext by PikerAlpha to see how many P-States you get.
Also try load testing using Prime and monitor with Intel Power Gadget.

In the end if NullCPUPowerManagement.kext is working fine for you with no issues, then I guess don't try to fix it
it was under my nose. the latest thread for with the X79 CPUPM fixes I was following has been updated for Mojave. my first tries were unsuccessful but in the weekend I will find some time for extended tests.
I will test Pikers kext as well and report back for all.
Thanks a million for your help so far @macnb and all the community as always!

How did you manage to get Sapphire Nitro+ in your signature builds? I can only pick pulse if I choose sapphire...
 
it was under my nose. the latest thread for with the X79 CPUPM fixes I was following has been updated for Mojave. my first tries were unsuccessful but in the weekend I will find some time for extended tests.
I will test Pikers kext as well and report back for all.
That solution is the Option 2 I mentioned earlier - to use AICPM kexts from High Sierra :)
Thanks a million for your help so far @macnb and all the community as always!
You are welcome.

How did you manage to get Sapphire Nitro+ in your signature builds? I can only pick pulse if I choose sapphire...
It's entered manually - just free form text. But it does mean that the site gets no advertising revenue :lol:
 
That solution is the Option 2 I mentioned earlier - to use AICPM kexts from High Sierra :)
yes but patched for Mojave. cause my already patched ones for high Sierra do not work on Mojave. So guess we say the same thing, or I understand it is the same while it is not....:confused:
Anyway I will report in the weekend for any progress on the X79 Mojave CPUPM love story.
It's entered manually - just free form text. But it does mean that the site gets no advertising revenue :lol:
:lol:
aha! that is why there is no space between "|" and "i7"
 
Ive been using this current method with my RX580 and all seems to be working "ok" for the most part. The only thing im noticing different is my iGPU is staying stuck at 1.25Ghz constantly.
Im using whatevergreen currently and iGPU enabled in BIOS.
Im using a connectorless platformID 0x0412000B "iMac 15,"
Inject intel and inject ATI, also Videoports set to 5 and Orinoco Framebuffer.
Any ideas??

IGPU power management is related to CPU power management so need to get both right.
Several problems:
- You have PluginType=NO in the config but somehow (maybe Clover) you have CPU power management.
- But you do not have dGPU power management (RX580). This is guide by @toleda. Read it carefully.
- Badly patched DSDT.aml. You have RX580 AND NVMe devices patched by Clover to GFX0.
- Your IGPU has a PCI Slot Number 3 - not needed (badly patched DSDT again):
Screenshot 2018-12-14 at 23.05.06.png

Try:
- Set ig-platform-id 0x04120004;
- set PluginType=YES; <== Only needed if you do not use DSDT (see update below)
- fix the DSDT (better still, don't use it, instead do the fixes in Clover ACPI);
- create dAGPM.kext based on Toleda's guide.

UPDATE: OK. I know how your PluginType is set (via DSDT). Try attached fixed DSDT.
Start a separate thread.
 

Attachments

  • MacNB-DSDT.aml
    63.4 KB · Views: 99
Last edited:
yes but patched for Mojave. cause my already patched ones for high Sierra do not work on Mojave. So guess we say the same thing, or I understand it is the same while it is not....:confused:
Anyway I will report in the weekend for any progress on the X79 Mojave CPUPM love story.
No. Read that thread carefully.
The guy has taken his pre-patched Kexts from his 10.13.6 and REPLACED the 10.14.1 kexts in /S/L/E.
Then installed the dummy LegacyX86PlatformPlugin.kext in /S/L/E.
Then used PikerAlpha ssdtPRgen.sh script to generate the CPU specific SSDT.aml to put into Clover ACPI/patched folder.

They have NOT patched the 10.14.1 kexts - that's they are waiting for stinga11 to do (like you).
 
IGPU power management is related to CPU power management so need to get both right.
Several problems:
- You have PluginType=NO in the config but somehow (maybe Clover) you have CPU power management.
- But you do not have dGPU power management (RX580). This is guide by @toleda. Read it carefully.
- Badly patched DSDT.aml. You have RX580 AND NVMe devices patched by Clover to GFX0.
- Your IGPU has a PCI Slot Number 3 - not needed (badly patched DSDT again):
View attachment 372816
Try:
- Set ig-platform-id 0x04120004;
- set PluginType=YES; <== Only needed if you do not use DSDT (see update below)
- fix the DSDT (better still, don't use it, instead do the fixes in Clover ACPI);
- create dAGPM.kext based on Toleda's guide.

UPDATE: OK. I know how your PluginType is set (via DSDT). Try attached fixed DSDT.
Start a separate thread.

Ok, using your attached DSDT.
- Set ig-platform-id to 0x04120004
- inject intel = true
- My power management is set via DSDT
- Created a dAGPM.kext and modified infoplist based on my platformID

Ive noticed my NVMe controller is now showing correctly in ioregistry
But power management still does not show for iGPU
And in system profile my iGPU is no longer showing in PCI devices
debug attached. I really appreciate you looking at this for me. :)
 

Attachments

  • debug_20148.zip
    3.8 MB · Views: 86
  • Screen Shot 2018-12-15 at 8.23.18 AM.png
    Screen Shot 2018-12-15 at 8.23.18 AM.png
    2.1 MB · Views: 149
Ok, using your attached DSDT.
- Set ig-platform-id to 0x04120004
- inject intel = true
- My power management is set via DSDT
- Created a dAGPM.kext and modified infoplist based on my platformID

Ive noticed my NVMe controller is now showing correctly in ioregistry
But power management still does not show for iGPU
And in system profile my iGPU is no longer showing in PCI devices
debug attached. I really appreciate you looking at this for me. :)

- Your dAGPM.kext was created incorrectly. You left out the IGPU section and Vendor1002Device1234 key should be Vendor1002Device67DF. I fixed it for you. See attached dAGPM.kext
- NVMe controller is showing correctly now because I changed the device name to NVME in the DSDT.
- IGPU is not longer showing in the PCI list because I removed it as it is not really a PCIe card in Slot 3.
It's cosmetic anyway.
To put it pack, change the line //Name (_SUN, 0x03) // _SUN: Slot User Number to Name (_SUN, 0x03) // _SUN: Slot User Number
See:
Code:
                Device (IGPU)
                {
                    Name (_ADR, 0x00020000)  // _ADR: Address
                    //Name (_SUN, 0x03)  // _SUN: Slot User Number
                }
- I forgot to tell you to remove the patch PEGP->GFX0 from the config.plist because I had alerady renamed PEGP to GFX0 in the DSDT. But there are other references to PEGP in your other SSDT's which you are not loading in your patched folders. Normally, one does not just have a patched DSDT but also patched SSDT's. See @RehabMan's guide to patching ACPI tables.
But anyway, I put the GFX0 back to PEGP in the DSDT (attached) so that you can keep the patch in your config.plist as-is and it will patch all the other PEGP's in your ACPI tables.

Try the attached and test.
 

Attachments

  • dAGPM.kext.zip
    2.6 KB · Views: 105
  • MacNB-DSDT.aml
    63.4 KB · Views: 85
- Your dAGPM.kext was created incorrectly. You left out the IGPU section and Vendor1002Device1234 key should be Vendor1002Device67DF. I fixed it for you. See attached dAGPM.kext
- NVMe controller is showing correctly now because I changed the device name to NVME in the DSDT.
- IGPU is not longer showing in the PCI list because I removed it as it is not really a PCIe card in Slot 3.
It's cosmetic anyway.
To put it pack, change the line //Name (_SUN, 0x03) // _SUN: Slot User Number to Name (_SUN, 0x03) // _SUN: Slot User Number
See:
Code:
                Device (IGPU)
                {
                    Name (_ADR, 0x00020000)  // _ADR: Address
                    //Name (_SUN, 0x03)  // _SUN: Slot User Number
                }
- I forgot to tell you to remove the patch PEGP->GFX0 from the config.plist because I had alerady renamed PEGP to GFX0 in the DSDT. But there are other references to PEGP in your other SSDT's which you are not loading in your patched folders. Normally, one does not just have a patched DSDT but also patched SSDT's. See @RehabMan's guide to patching ACPI tables.
But anyway, I put the GFX0 back to PEGP in the DSDT (attached) so that you can keep the patch in your config.plist as-is and it will patch all the other PEGP's in your ACPI tables.

Try the attached and test.

Ok
- Installed your latest DSDT.aml
- I realized after i created the dAGPM.kext i did it wrong. "didnt read closely enough". Fixed with yours
- I left PEGP to GFX0 alone in my plist and also tried with it disabled. "seem makes no difference in getting iGPU PM in my scenerio"
- also tried with injectintel=false and leaving platformID blank. Makes no difference.
- iGPU PM is still for some reason not working. Still runs at 1.25GHz
- Tried using the default 0x04160000 igPlatformID for my iGPU and it does show now in system profiler.
- Intel Power Gadget reports its idle at 0.20Ghz. But it doesnt scale up properly under load.
- IOregistry reports AZULFramebuffer is loading but no PM. "Current and MaxPowerState both report 0x1
- Ive attached my latest debug. Sorry to keep bugging you. Your help is really appreciated :)
 

Attachments

  • debug_31763.zip
    3.8 MB · Views: 72
  • Screen Shot 2018-12-15 at 2.58.36 PM.png
    Screen Shot 2018-12-15 at 2.58.36 PM.png
    4.2 MB · Views: 148
  • PlatformID 0x04120004.png
    PlatformID 0x04120004.png
    3.1 MB · Views: 141
Last edited:
Ok
- Installed your latest DSDT.aml
- I realized after i created the dAGPM.kext i did it wrong. "didnt read closely enough". Fixed with yours
- I left PEGP to GFX0 alone in my plist and also tried with it disabled. "seem makes no difference in getting iGPU PM in my scenerio"
- also tried with injectintel=false and leaving platformID blank. Makes no difference.
- iGPU PM is still for some reason not working. Still runs at 1.25GHz
- Tried using the default 0x04160000 igPlatformID for my iGPU and it does show now in system profiler.
- Intel Power Gadget reports its idle at 0.20Ghz. But it doesnt scale up properly under load.
- IOregistry reports AZULFramebuffer is loading but no PM. "Current and MaxPowerState both report 0x1
- Ive attached my latest debug. Sorry to keep bugging you. Your help is really appreciated :)
With the updated DSDT, PEGP-to-GFX0 patch should be not be disabled.
IGPU appearing/not in System profiler is not important.

May be something to do with BIOS setup of the IGPU (secondary, Auto or Enabled), DVMT value ?

Instead of relying on Clover to generate the CPU/IGPU power management P-states (via PluginType=YES), another option is to use Piker Alpha's ssdtPRGen.sh to generate a CPU/IGPU power management SSDT (search it). It generates an SSDT for your specific CPU & IGPU with the P-States for each. Search for it.

I suggest you start a new thread here to seek help there. Even though that thread is for native CPU/IGPU power management, explain that you have dAGPM.kext for the AMD GPU but the issue is with the IGPU P-States.
 
With the updated DSDT, PEGP-to-GFX0 patch should be not be disabled.
IGPU appearing/not in System profiler is not important.

May be something to do with BIOS setup of the IGPU (secondary, Auto or Enabled), DVMT value ?

Instead of relying on Clover to generate the CPU/IGPU power management P-states (via PluginType=YES), another option is to use Piker Alpha's ssdtPRGen.sh to generate a CPU/IGPU power management SSDT (search it). It generates an SSDT for your specific CPU & IGPU with the P-States for each. Search for it.

I suggest you start a new thread here to seek help there. Even though that thread is for native CPU/IGPU power management, explain that you have dAGPM.kext for the AMD GPU but the issue is with the IGPU P-States.

I think i got it figured out.
For some reason the "typical" way of using a headless iGPU platformID always leads to my iGPU running at 1.25Ghz.
What seems to have worked for me is leaving platformID blank and FakeID set to 0x0 and just using InjectIntel=true
Now iGPU idles and scales properly
I have CPU PM setup via PluginType=True "ACPI/SSDT/Generate/PluginType
VideoProc now sees my Intel4600GPU for Qsync and uses it when running
Ive attached my current debugs. You seem to be more advanced with subject than me :)
Again, I appreciate your help.
 

Attachments

  • CLOVER.zip
    1.8 MB · Views: 127
  • Screen Shot 2018-12-20 at 5.27.58 AM.png
    Screen Shot 2018-12-20 at 5.27.58 AM.png
    4.1 MB · Views: 126
  • iMac 15,1.zip
    1 MB · Views: 77
  • NeatBenchLog 2018-12-20 05-40-01.txt
    2.4 KB · Views: 132
Status
Not open for further replies.
Back
Top