Contribute
Register

macOS Native CPU/IGPU Power Management

I am not using the GFX0 --> IGPU rename as I think I do not need it when not using the IGPU
Not correct, Airplay requires iGPU, iGPU requires IGPU for PM, monitor or not.
The only case for no IGPU PM is when iGPU is disabled in the BIOS.
The OP is not to clear about that as I interpreted the OP that the rename is compulsory, both for a Haswell as well as Skylake build. Please clarify to help me understand this rename issue.
Airplay is not mentioned in the OP as it is not a special case; bad assumption.
Hint, injecting a framebuffer is clearly enabling the iGPU.
No difference in iGPUs, Sandy Bridge/HD3000 to present.
 
Not correct, Airplay requires iGPU, iGPU requires IGPU for PM, monitor or not.
The only case for no IGPU PM is when iGPU is disabled in the BIOS.
Hi @toleda Now I am even more confused and I quote from your Guide "AMD/Nvidia Primary display with Airplay Mirroring"
"BIOS/AMI/Advanced/System Agent/Enable Integrated Graphics
Remove config.plist/ACPI/DSDT/Patches/Rename GFX0 to IGPU"
In that Guide one must remove the Rename GFX0 to IGPU patch whereas in this Guide it must be reinstated again. The 2 different approaches seem to contradict one another. In any case when I remove the framebuffer injection and set IGPU as primary display I end up booting blind until one reaches the desktop. Fair and square as that one should be expected. My Airplay then also allows me to use the "third" display aka framebuffer as well as a projector should one be connected. That is also fine, but I loose the ability to hardware encode and decode, that is not so nice.

Now without the GFX0 to IGPU rename I can Airplay any one of the 2 connected monitors to my Apple TVs, that was tested and works, but I loose the ability to Airplay with the 3rd display aka framebuffer, as that option is not present anymore. However I am now able to hardware encode and decode.
So I am remaining solidly confused when I read the approaches in the 2 guides mentioned, side by side.
 
Last edited:
Now I am even more confused and I quote from your Guide "AMD/Nvidia Primary display with Airplay Mirroring"
"BIOS/AMI/Advanced/System Agent/Enable Integrated Graphics
Remove config.plist/ACPI/DSDT/Patches/Rename GFX0 to IGPU"
Convenient editorial license, quote from guide:
Screen Shot 2018-03-28 at 10.35.26 AM.png
Means 2 methods, select 1; choices are:
1. have Clover inject the AirPlay framebuffer; no mention of GFX0 to IGPU
2. install an Airplay ssdt; remove GFX0 to IGPU because it disables the ssdt

The ssdt renames GFX0 to IGPU and sets the AirPlay framebuffer; works with or without Clover.

The iGPU PM, dGPU PM, Airplay and HDMI audio threads are consistent.
Are you still confused?

Now without the GFX0 to IGPU rename I can Airplay any one of the 2 connected monitors to my Apple TVs, that was tested and works, but I loose the ability to Airplay with the 3rd display aka framebuffer, as that option is not present anymore.
Off topic.
 
The ssdt renames GFX0 to IGPU and sets the AirPlay framebuffer; works with or without Clover.

Hi @toleda the confusion just turned into an abyss, and here is why :)

In both my hacks I use the ssdt..aml files that you provide to set the Airplay framebuffer and never used the GFX0 --> IGPU rename, as instructed in that thread, fair and square, so far so good. The reason why the GFX0 --> IGPU rename should not be used was today provided as well being, as you wrote,

"install an Airplay ssdt; remove GFX0 to IGPU because it disables the ssdt"

Everything is beautiful and exactly the way I implemented your method 2 to set the Airplay framebuffer, referring of cause to your Airplay guide.

Now to my post #622 of this thread and I quote myself now.

"I am not using the GFX0 --> IGPU rename as I think I do not need it when not using the IGPU"

To which you responded.

"Not correct, Airplay requires iGPU, iGPU requires IGPU for PM, monitor or not.
The only case for no IGPU PM is when iGPU is disabled in the BIOS."

From this response of yours, which I still do not understand what it means within the context of my post #622 I deducted that I now all of a sudden require the GFX0 --> IGPU rename, but never mind that.

What I meant to say, or perhaps should have written is as follows, me thinks, obviously only if I had known the rename details that you provided, earlier.

"I am not using the GFX0 --> IGPU rename as I think I do not need it because I have set the Airplay framebuffer with your method 2 on both my hacks with the SSDTs that you provided. If I would use the rename it would disable what your Airplay ssdt are trying to accomplish."

For hours on end, and after having read this complete thread I think I have been searching for a needle in a haystack, trying to get PM working for the IGPU framebuffer, something I now understand is not doable, using the connectorless framebuffer method.

Please clarify should I be wrong again. or guide me along a direction which would assist me to finally get it working the way you intended.

My CPU PM has been working well for a very long time already, on both of my hacks. Initially I used @RehabMan 's specially prepared Clover from his repo long before the Sourceforge Clover version
adopted that feature, originally discovered by @RehabMan, as well under ACPI/SSDT/Gernerate/PluginType.
Greets
 
Hi @toleda In the interim I have spent some more time in trying to implement "IGPU-framebuffer" power management on top of or alongside my already working CPU PM.
Please look at the attached files and let me know whether I am on the right track.
Much appreciated.
Note that I did not apply the GFX0 --> IGPU rename as originally I used your method 2 of your Airplay guide with the SSDT...aml that you provided for Haswell, and that already includes this rename. In order to get the framebuffer PM controlled, I merely renamed PEGP --> GFX0. The attached Clover folder without the Themes folder should shed some light on what I did and whether the approach of mine is now correct..
Greetings
 

Attachments

  • PM Files Haswell.zip
    983.3 KB · Views: 68
  • CLOVER.zip
    1.8 MB · Views: 66
For hours on end, and after having read this complete thread I think I have been searching for a needle in a haystack, trying to get PM working for the IGPU framebuffer, something I now understand is not doable, using the connectorless framebuffer method.
Native iMac14,2 IOReg/10.12.6:
Screen Shot 2018-03-28 at 5.59.07 PM.png
 
Last edited:
Hi @toleda Our posts crossed. Here is what I have for my Native iMac14,2 IOReg
From what I can see it appears to look OK but I am not sure. Please have a look and also at the files I sent you with my post #626
Your "green light would give me the confidence to tackle the Skylake build of mine without having to continuously nag you.
Thank
 

Attachments

  • ioreg PM Haswell.jpeg
    ioreg PM Haswell.jpeg
    235.5 KB · Views: 93
@RehabMan

RehabMan said:
Your hardware requires only config.plist/ACPI/SSDT/Generate/PluginType=true.
Read here for details:
https://www.tonymacx86.com/threads/macos-native-cpu-igpu-power-management.222982

So, I was able to follow up until step 5, when I became confused. If I understand correctly, since I have no current PM SSDT. I was to skip to step 6, which I did. I downloaded SSDT-XCPM.aml and moved it to Clover/ACPI/Patched. Then I used Xcode to edit Item 0 under ACPI/DSDT using the values in the patch listed.

I restarted, and did not have the the Generate PluginType option under ACPI/SSDT. Am I supposed to add that manually in Xcode? Sorry, I lost the flick at step 5. Problem reporting files attached, along with my AppleIntelInfo.kext output and the screenshot from Intel Power Gadget (if needed).
 

Attachments

  • debug_16181.zip
    3.9 MB · Views: 65
  • Terminal Saved Output.pdf
    23.8 KB · Views: 88
  • Screen Shot 2018-04-06 at 3.08.16 PM.png
    Screen Shot 2018-04-06 at 3.08.16 PM.png
    58 KB · Views: 108
This is the difference in my P-states:
(Generated SSDT vs PluginType)
What's better?
ssdtPRGen_vs_PluginType.png
 
Back
Top