> Last modified: Wed May 06 2020 04:52:37 GMT+0000 (Coordinated Universal Time)

# Disabling laptop dGPUs

So with laptops, we can hide the dGPU from macOS with the little boot-arg called `-wegnoegpu` from WhateverGreen. But one small problem, the dGPU is still pulling power draining your battery slowly. We'll be going over 2 methods for disabling the dGPU in a laptop:

- Optimus Method
- 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:

To start, grab SSDT-dGPU-Off.dsl

Next we need to get on Windows, and head to the following:

    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:

    External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj)

    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

## 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. Credit to Mameo for the original adaptation.

To start, grab SSDT-NoHybGfx.dsl

Next we need to get on Windows, and head to the following:

    Device Manager -> Display Adapters -> dGPU -> Properties -> Details > 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:

    External (_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)    // dGPU ACPI Path
    External (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    // dGPU ACPI Path

    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)

     // Card Off
    \_SB.PCI0.PEG0.PEGP._PS3 ()

Once adapted to your config, head to the compile section

## Now you're ready to compile the SSDT!

# results matching ""

# No results matching ""