Add dGPU disable support

This commit is contained in:
Mykola Grymalyuk
2020-04-02 17:18:38 -06:00
parent 8acedca403
commit 942c1632ca
6 changed files with 32 additions and 13 deletions

View File

@@ -18,6 +18,8 @@ To find the PCI path of a GPU is fairly simple, best way to find it is running W
![](https://cdn.discordapp.com/attachments/456913818467958789/675210740231176212/unknown.png) ![](https://cdn.discordapp.com/attachments/456913818467958789/675210740231176212/unknown.png)
![](![Credit to 1Revenger1 for the image](https://cdn.discordapp.com/attachments/683011276938543134/695396807739441232/unknown-4.png))
The second "ACPI" is what we care about: The second "ACPI" is what we care about:
``` ```

View File

@@ -16,3 +16,6 @@ If Windows has been installed on the device, you can also do the following:
```text ```text
Device Manager -> Display Adapters -> Properties -> Details > BIOS device name Device Manager -> Display Adapters -> Properties -> Details > BIOS device name
``` ```
* Note some GPUs may be hiding under "BIOS device name"
![Credit to 1Revenger1 for the image](https://cdn.discordapp.com/attachments/683011276938543134/695396807739441232/unknown-4.png)

View File

@@ -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) * [Optimus Method](/Laptops/laptop-disable.md#optimus-method)
* [Bumblebee Method](/Laptops/laptop-disable.md#bumblebee-method) * [Bumblebee Method](/Laptops/laptop-disable.md#bumblebee-method)
Note that this is not needed for install, but recommended for post-install
## Optimus Method ## 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: 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 ```text
Device Manager -> Display Adapters -> dGPU -> Properties -> Details > BIOS device name 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: This should provided you with an ACPI path for your dGPU, most commonly:
* Nvidia dGPU: `\_SB.PCI0.PEG0.PEGP` * Nvidia dGPU: `\_SB.PCI0.PEG0.PEGP`
* AMD dGPU: `\_SB.PCI0.PEGP.DGFX` * AMD dGPU: `\_SB.PCI0.PEGP.DGFX`
![Credit to 1Revenger1 for the image](https://cdn.discordapp.com/attachments/683011276938543134/695396807739441232/unknown-4.png)
Now with that, we'll need to change the ACPI path in the SSDT. Main sections: Now with that, we'll need to change the ACPI path in the SSDT. Main sections:
```text ```text
External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj) // ACPI Path of dGPU External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
```text ```
```text ```text
If (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() } 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 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 ## 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) 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 ```text
If ((CondRefOf (\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\_SB.PCI0.PEG0.PEGP._PS3))) 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) ``` text
{ // Card Off Request
0x01, 0x00, 0x00, 0x03 \_SB.PCI0.PEG0.PEGP._DSM (ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"), 0x0100, 0x1A, Buffer (0x04)
}) ```
// Card Off
\_SB.PCI0.PEG0.PEGP._PS3 () ```text
} // Card Off
\_SB.PCI0.PEG0.PEGP._PS3 ()
``` ```
Once adapted to your config, head to the compile section Once adapted to your config, head to the compile section

View File

@@ -28,7 +28,8 @@ Directory of fs0:\
01/01/01 3:30p EFI 01/01/01 3:30p EFI
fs0:\> cd EFI\OC\Tools // note that it's with forward slashes fs0:\> cd EFI\OC\Tools
fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
``` ```

View File

@@ -11,12 +11,14 @@
## Desktop ## Desktop
* [Embedded Controllers](/Desktops/desktop-ec.md) * [Embedded Controllers](/Desktops/desktop-ec.md)
* [Disabling desktop dGPUs](/Desktops/desktop-disable.md)
## Laptop ## Laptop
* [Embedded Controllers](/Laptops/laptop-ec.md) * [Embedded Controllers](/Laptops/laptop-ec.md)
* [Backlight PNLF](/Laptops/backlight.md) * [Backlight PNLF](/Laptops/backlight.md)
* [Trackpad GPI0](/Laptops/trackpad.md) * [Trackpad GPI0](/Laptops/trackpad.md)
* [Disabling laptop dGPUs](/Laptops/laptop-disable.md)
## Universal ## Universal

View File

@@ -50,8 +50,10 @@ To find the PCI path of a GPU is fairly simple, best way to find it is running W
* Open Device Manager * Open Device Manager
* Select Display Adapters, then right click your GPU and select Properties * Select Display Adapters, then right click your GPU and select Properties
* Under the Details Tab, search for "Location Paths" * Under the Details Tab, search for "Location Paths"
* Note some GPUs may be hiding under "BIOS device name"
![](https://cdn.discordapp.com/attachments/456913818467958789/675210740231176212/unknown.png) ![](https://cdn.discordapp.com/attachments/456913818467958789/675210740231176212/unknown.png)
![Credit to 1Revenger1 for the image](https://cdn.discordapp.com/attachments/683011276938543134/695396807739441232/unknown-4.png)
The second "ACPI" is what we care about: The second "ACPI" is what we care about: