I have a Razer Blade 14 5900HX with 3070 and is creating opencore EFI for it. It's pretty much done now. One issue I'm facing now is that DGPU do not want to turn off. The laptop thus consumes 40w doing nothing, which is pretty intolerable.
I've followed the guide by Dortania to use both SSDT-dGPU-Off/NoHybGfx methods but they both failed. dGPU-Off does not make effect, and NoHybGfx results in a crash (crash -> boot to bios -> no boot device found).
Then I tried to dig deeper into the acpi, and I found the reason dGPU-Off is not working is that PCI0.GPP0.PEGP does not have the _OFF method, only _PS3 is available. As for NoHybGfx, since it uses the _PS3, it should make effect. But according to the information I found in the original guide by RehabMan, _PS3 includes EC related entries (which is after a few calls to another method in my case) will make the computer crash when running it on _INI stage, which is how NoHybGfx is written. The EC related entries should be moved to _REG, but in the guide they use full patched SSDT/DSDT on clover, and I don't know how to properly do it on opencore.
At this point I have no idea how to workaround this. Any advice would be greatly appreciated.
Attached is the DSDT and SSDT3 ( SSDT3 is where the code mentioned above are, and I believe is for the dGPU)
I've followed the guide by Dortania to use both SSDT-dGPU-Off/NoHybGfx methods but they both failed. dGPU-Off does not make effect, and NoHybGfx results in a crash (crash -> boot to bios -> no boot device found).
Then I tried to dig deeper into the acpi, and I found the reason dGPU-Off is not working is that PCI0.GPP0.PEGP does not have the _OFF method, only _PS3 is available. As for NoHybGfx, since it uses the _PS3, it should make effect. But according to the information I found in the original guide by RehabMan, _PS3 includes EC related entries (which is after a few calls to another method in my case) will make the computer crash when running it on _INI stage, which is how NoHybGfx is written. The EC related entries should be moved to _REG, but in the guide they use full patched SSDT/DSDT on clover, and I don't know how to properly do it on opencore.
At this point I have no idea how to workaround this. Any advice would be greatly appreciated.
Attached is the DSDT and SSDT3 ( SSDT3 is where the code mentioned above are, and I believe is for the dGPU)
Attachments
Last edited: