Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
bayasdev committed Dec 20, 2021
1 parent 27b41c3 commit 5e6a43e
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
# EnvyControl

# Introduction
## Introduction

EnvyControl is a program aimed to provide an easy way to switch GPU modes on Nvidia Optimus systems (i.e laptops with Intel + Nvidia or AMD + Nvidia configurations) under Linux.

## Compatible distros
### Compatible distros

**This program was developed for Arch Linux** but it should work on any other Linux distribution.

Debian and Ubuntu derivates might require rebuilding the initramfs after switching modes, you can rebuild the initramfs by running `sudo update-initramfs -u -k all`.

## Tested devices
### Tested devices
- Acer Predator Helios 300 2017 (G3-571)
- Intel Core i7-7700HQ
- Intel HD630 iGPU
- Nvidia GTX 1060 dGPU
- Arch Linux with Gnome

## A note on AMD + Nvidia systems
### A note on AMD + Nvidia systems

I don't own any device with this particular hardware combination (in theory `integrated` and `hybrid` modes should work), please contact me if you do.

# Installation
## Installation

Installation it's not required since you can directly run `envycontrol.py` from source, however for convenience sake you can install EnvyControl globally:

## From the AUR
### From the AUR

Install [envycontrol](https://aur.archlinux.org/packages/envycontrol/) with the AUR helper of your choice.

## Using pip
### Using pip

1. Clone or download this GitHub repository
2. Run `sudo pip install .`

# Usage
## Usage

```
usage: envycontrol [-h] [--status] [--switch MODE] [--version]
Expand All @@ -47,7 +47,7 @@ options:
--version, -v Print the current version and exit
```

## Examples
### Examples

Set graphics mode to `integrated` (disable the Nvidia GPU):

Expand All @@ -61,17 +61,17 @@ Show the current graphics mode:
envycontrol --status
```

# Graphics modes explained
## Graphics modes explained

The current state of Nvidia Optimus laptops on Linux is sad, each mode comes with a downside so you may find yourself switching modes quite often.

## integrated
### integrated

This mode will power off the Nvidia GPU by blacklisting the Nvidia and nouveau drivers, as well as removing the card from the PCI bus using Udev rules.

Since the dGPU is turned off your battery may last longer than on Windows, also you will be able to use Wayland and enjoy Linux without having to worry about overheating. **The downside is that you can't use any external screen because on most laptops the HDMI ports are wired to the dGPU.**

## nvidia
### nvidia

This mode will render both internal and external screens using the Nvidia GPU, it requires the propietary Nvidia drivers to be installed and currently it's only compatible with Intel + Nvidia systems.

Expand All @@ -82,17 +82,17 @@ It works by creating a X.org config file with the Intel iGPU attached to an inac
**This is the recommended mode for working with external screens, if tearing appears on external screens please use [nvidia-force-comp-pipeline
](https://github.com/Askannz/nvidia-force-comp-pipeline).**

## hybrid
### hybrid

This is the default behavior for both Nvidia and nouveau drivers, the dGPU can be accesed on-demand with `DRI_PRIME=1` for nouveau or `__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia` for the propietary driver.

The propietary driver implements dynamic power management (like Windows) only on Turing and newer cards paired with Intel 8th+ gen processors. [Read the official documentation to enable it if you're eligible.](http://us.download.nvidia.com/XFree86/Linux-x86_64/495.46/README/dynamicpowermanagement.html)
The propietary driver implements dynamic power management (like Windows) only on Turing and newer cards paired with Intel 8th gen or newer processors. [Read the official documentation to enable it if you're eligible.](http://us.download.nvidia.com/XFree86/Linux-x86_64/495.46/README/dynamicpowermanagement.html)

**The downsides are poor battery life on cards that don't support dynamic power management (like mine), external screens are laggy due to a broken reverse PRIME implementation on X.org and Wayland crashes if an external screen is connected (tested on Gnome).**

Well, nouveau supports external screens on Wayland but it's laggy and prone to make your system crash.

## Closing words
### Closing words

**Don't buy Nvidia hardware!**

Expand Down

0 comments on commit 5e6a43e

Please sign in to comment.