You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
Notice libvibrant worked on the same system on X11, that's because not only the video server is common to both GPUs, it's a native specification of xorg Color Transformation Matrix the iGPU was likely following.
Missing display outputs beyond the first one #14: Only one disconnected 'display' is found. User seems to be on a hybrid system as gnome-shell is only using 1 MB of vram - unthinkable!, surely offloaded somewhere else.
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!
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:
nvibrant Fails with NVIDIA Driver 580 on Hyprland (Wayland) #20: Confirmed on laptop, nvibrant fails on
NvKmsAllocDevicecall super early in the code, in a sense the nvidia driver isn't even active (is my interpretation)Missing display outputs beyond the first one #14: Only one disconnected 'display' is found. User seems to be on a hybrid system as
gnome-shellis only using 1 MB of vram - unthinkable!, surely offloaded somewhere else.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-rundoesn't help as this is a/dev/nvidia-modesetioctl 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!