mirror of
https://github.com/AskDavis/Getting-Started-With-ACPI.git
synced 2026-01-01 05:05:57 -08:00
Add dGPU disable support
This commit is contained in:
@@ -16,3 +16,6 @@ If Windows has been installed on the device, you can also do the following:
|
||||
```text
|
||||
Device Manager -> Display Adapters -> Properties -> Details > BIOS device name
|
||||
```
|
||||
* Note some GPUs may be hiding under "BIOS device name"
|
||||
|
||||

|
||||
@@ -5,6 +5,8 @@ So with laptops, we can hide the dGPU from macOS with the little boot-arg called
|
||||
* [Optimus Method](/Laptops/laptop-disable.md#optimus-method)
|
||||
* [Bumblebee Method](/Laptops/laptop-disable.md#bumblebee-method)
|
||||
|
||||
Note that this is not needed for install, but recommended for post-install
|
||||
|
||||
## Optimus Method
|
||||
|
||||
How this works is that we call the `.off` method found on Optimus GPUs, this is the expected way to power off a GPU but some may find their dGPU will power back up later on. Mainly seen in Lenovo's, the Optimus method should work for most users:
|
||||
@@ -17,17 +19,21 @@ Next we need to get on Windows, and head to the following:
|
||||
```text
|
||||
Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name
|
||||
```
|
||||
* Note some GPUs may be hiding under "BIOS device name"
|
||||
|
||||
This should provided you with an ACPI path for your dGPU, most commonly:
|
||||
|
||||
* Nvidia dGPU: `\_SB.PCI0.PEG0.PEGP`
|
||||
* AMD dGPU: `\_SB.PCI0.PEGP.DGFX`
|
||||
|
||||
|
||||

|
||||
|
||||
Now with that, we'll need to change the ACPI path in the SSDT. Main sections:
|
||||
|
||||
```text
|
||||
External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj) // ACPI Path of dGPU
|
||||
```text
|
||||
External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
|
||||
```
|
||||
|
||||
```text
|
||||
If (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() }
|
||||
@@ -35,10 +41,12 @@ If (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() }
|
||||
|
||||
Once adapted to your config, head to the compile section
|
||||
|
||||
* For those with sleep issues, you can refer to the original [Rehabman thread](https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/)
|
||||
|
||||
|
||||
## Bumblebee Method
|
||||
|
||||
With some machines, the simple `.off` call won't keep the card off properly, that's where the Bumblebee method comes in. This SSDT will actually send the dGPU into D3 state being the lowest power state a device can support. Creit to Mameo for the original adaptation
|
||||
With some machines, the simple `.off` call won't keep the card off properly, that's where the Bumblebee method comes in. This SSDT will actually send the dGPU into D3 state being the lowest power state a device can support. Credit to Mameo for the original adaptation.
|
||||
|
||||
To start, grab [SSDT-NoHybGfx.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-NoHybGfx.dsl.zip)
|
||||
|
||||
@@ -62,15 +70,16 @@ External (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj) // dGPU ACPI Path
|
||||
|
||||
```text
|
||||
If ((CondRefOf (\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\_SB.PCI0.PEG0.PEGP._PS3)))
|
||||
{
|
||||
// Card Off Request
|
||||
\_SB.PCI0.PEG0.PEGP._DSM (ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"), 0x0100, 0x1A, Buffer (0x04)
|
||||
{
|
||||
0x01, 0x00, 0x00, 0x03
|
||||
})
|
||||
// Card Off
|
||||
\_SB.PCI0.PEG0.PEGP._PS3 ()
|
||||
}
|
||||
```
|
||||
|
||||
``` text
|
||||
// Card Off Request
|
||||
\_SB.PCI0.PEG0.PEGP._DSM (ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"), 0x0100, 0x1A, Buffer (0x04)
|
||||
```
|
||||
|
||||
```text
|
||||
// Card Off
|
||||
\_SB.PCI0.PEG0.PEGP._PS3 ()
|
||||
```
|
||||
|
||||
Once adapted to your config, head to the compile section
|
||||
|
||||
Reference in New Issue
Block a user