Skip to content

Laptops issues megathread (hybrid systems) #22

@Tremeschin

Description

@Tremeschin

Important

First of all, I don't have the hardware to ensure the project works (or not!) in such environments, and have never used a system with multiple GPUs, so my knowledge is limited. Nobody volunteered to help debugging it where I asked on a few tech savy groups, feel free to get in touch!

This is my best effort to understand the problem, with potential fixes or road blocks - share new findings!

The problem

nvibrant makes calls to the nvidia driver, which is then responsible for the color transformation matrix in the outputs. For power efficiency reasons, laptops only uses the dedicated GPU on intensive tasks, dynamically switching with any Optimus, Bumblebee, or PRIME on Linux.

As such, the Integrated GPU (iGPU) "owns" the displays at all times, being the middle man to transfer rendered frames from the dGPU to the display. Notice the problem - the nvidia driver isn't controlling the outputs!

On a tangent line, this also seems to be the core reason for poor graphics performance with external monitors on laptops, words on the streets.

At least two issues seems to be from users on laptops:

Potential solution

I can only think for a single workaround and two possible outcomes with the situation.

✅ The good

Disabling the Integrated GPU on the "BIOS" makes the NVIDIA GPU and its drivers the sole owner of the displays, nvibrant works just like desktop systems. How one does it it is purely based on your motherboard, assuming it's even possible.

I cannot help you further here, seek help in manuals, forums, community around your hardware.

Expect much worse battery life with such!

Note

I strongly beleive this is the only feasible way out. Otherwise, you are part of the same AMD/Intel team looking for saturation options on Wayland - this is a compositor/protocols/DE/WM issue and nvibrant doesn't apply to you.

⛔️ The bad

It's impossible to change it at all, the iGPU will always be in the middle, the nvidia is never "connected" to the display directly like desktops. Things like prime-run doesn't help as this is a /dev/nvidia-modeset ioctl directly to the driver.

Impossible is a strong word, perhaps deep kernel configurations does it, if you really want it, dig deeper like I did for nvibrant!

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions