New Configs with new stuff.
@levanlong, I have the same ZBook model, 17 g5, like you. Do you can share on forum your last clover EFI folder ? Many many thanks !!!
www.tonymacx86.com
Changes are:
Added Bluetool Fixup for Monterey.
Added New Hybrid Muxed config which is basically a Discrete mode (DGPU to all screens) but with added IGPU in a empty framebuffer configuration to enable QuickSync support.
New (fake) UMA config. No need to switch Bios to get this new mode. DGPU is powered off from boot, and the mux is switched to IGPU for future support. Saves power by turning OFF DGPU.
DMAR support is added but needs to be enabled in the config in case it's needed for some Thunderbolt devices.
There's 2 new SSDT's and 5 new ACPI patches.
In Fake UMA:
We change Method _INI in DGPU SSDT's so intead of calling "INIM = One"
View attachment 531756
it calls "OFF ()"
View attachment 531757
Then the problem is that the _OFF method calls "\_SB.PCI0.PEG0.PEGP.RDSS (Zero)" and RDSS calls the Embedded controller before it is ready, so our next patch removes this RDSS call from our OFF method to avoid a crash.
View attachment 531759
Since we can't change the size of the OEM DSDT or SSDT's with these patches, the extra Zeroes are a side-effect of doing this. But in the end the result is the same
View attachment 531760
Now, according to Rehabman's guide, we now need to replace the call to "\_SB.PCI0.PEG0.PEGP.RDSS (Zero)" that we removed, and as luck would have it, the EC on _REG, calls method ECRI,
View attachment 531772
and that in turn calls "\_SB.PCI0.PEG0.PEGP.RDSS (One)". So... we just change that to Zero with our next patch, and our INI > PEGP._OFF method is now complete.
The problem now is that when the Zbook wakes from sleep, the DGPU is powered back on, so I had to do another trick for this one. I tried adding the _OFF method before and after _WAK, but it wouldn't work. If it was executed before _WAK, the EC wasn't awake yet, and after the _WAK method, there wasn't enough time before we returned to user land and acpi commands were ignored. So, the solution was to hijack the DSDT CWAK method that the original _WAK method calls late in the wake process. This method happens after the EC is activated, so this is the best spot to insert our DGPU OFF call.
To do this we rename CWAK in DSDT to ZWAK so it never gets called
View attachment 531761
and then we replace it with our own version in a new SSDT.
View attachment 531762
I also added a 1 second sleep before our OFF call just for safety, and since we're here already, might as well call our GFX0.XMXX method to also flip the exernal Mux to IGPU for possible future external display support.
The new Hybrid Mux version is easier.
On boot we add a new device RMD1. On INIT this device calls the Mux switch command XMXX. This in turn connects our LCD to the DGPU. (you will see the screen go black during boot and it stays like this until our graphic drivers and acceleration kicks in)
Again on wake from sleep, the mux is switched back to it's default IGPU position, so I had to replace the _WAK command with our own version where I call our Mux switch again on wake from sleep.
View attachment 531774
With these new configs I'm only using "Automatic" in Graphics Device selection in Bios, and then use OC to select different display configs at boot. Refind is my main OS chainloader at boot, and this in turn gives me Windows/Linux as well as 2 different OC configurations. Low Power fake UMA for general "battery only" use, and DGPU Muxed Hybrid for when I need more GFX power.
The only (minor) inconveniences at the moment are:
-No external display support for fake UMA yet.
-LCD brightness between DGPU and IGPU use different values so I have to readjust when I use a different config.
Enjoy!