-
Notifications
You must be signed in to change notification settings - Fork 2
Common Terms
Optimus is a term used by nVidia to describe Laptops with switchable graphics. This means there are two GPUs present in the system. One integrated into the CPU (aka. APU) called iGPU and a dedicated nVidia GPU also called the dGPU.
See: Wikipedia Page about Optimus
PRIME Render Offload is a term used by nVidia to dynamically run a certain application on the dGPU by setting a few environment variables.
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia <app_goes_here>
Some distributions offer a script called prime-run
to ease up the process.
Note: prime-run is not to be confused with prime-select, optirun or primus-run. These are entirely different things.
Note: You can make use of prime-run or the above environment variables using OptimusUI only if the system runs in Offload
mode. Also this requires at least nVidia driver version 435 or newer.
See: NVIDIA Readme about PRIME Render Offload
bbswitch short for bumblebee switch is a Linux Kernel module to dynamically power down or power up a nVidia GPU which does not support this on it's own.
Note: nVidia GPUs of the Turing micro architecture (GTX 16 / RTX 20) and newer do have build-in support for advanced power management and are capable of power down entirely if not used. This is due to an additional hardware module called the GSP co-processor.
GSP is a micro controller inside a modern nvidia GPU which serves as a communication platform between the nVidia GPU and the driver on the host system.
This allows open source drivers to be developed and make use of advanced GPU features otherwise locked away for signed driver firmware. Also this GSP chip is the part of a nVidia GPU which in fact does power down or power up the nvidia chip on the GPU.
Bumblebee is a legacy way of offloading OpenGL applications to the dedicated nVidia GPU with dynamic power management enabled using bbswitch. However bumblebee is barely maintained as nvidia supports Offloading in recent GPUs just fine. Also bumblebee is limited to offload OpenGL only. Which renders applications making use of the Vulkan API unusable using this method. Major example would be any Windows Game running on Linux using tools like DXVK or VKD3D.
Note: bumblebee is not to be confused with bbswitch they are different things even though bbswitch is maintained by the Bumblebee-Project as well.
Optirun and Primus run are legacy ways of running certain applications on the dedicated nVidia GPU. However as they make use of bumblebee they do only work with OpenGL applications and are no longer maintained as well.