High CPU usage when using external monitor

I’ll preface this by saying I know it’s not a darktable specific issue, but I’m hoping that someone here might have the information that will help me.

I recently bought a new monitor for editing. I’m connecting to my laptop via USB-C. The laptop is running Fedora 32, uses Nvidia Optimus, which is working fine with proprietary drivers. I’ve confirmed OpenCl is working and I’m launching Darktable with…

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia darktable

The problem that I am having is that I get high CPU usage when the monitor is plugged in, I get high CPU usage, even if the monitor is disabled using the Gnome settings menu. Unplugging the monitor returns CPU load to “normal” and editing is no longer choppy.
The problem then persists when I try to actually use the monitor, regardless of whether I lower the refresh rate or resolution.

Can anyone shed some light on what the problem might be?

Do you have a regular HDMI port to use? What happens if you plug it in that way?

Great question! No idea why I hadn’t tried this!
I just gave it a quick go and it seems as though it’s smoother when using the HDMI port. Was only a quick test and didn’t record any numbers but seems like a good starting point.

Any idea what the reason for this might be?

For USB connection, probably it uses DisplayLink. Your CPU will be used to emulate a virtual graphics card.
But I don’t know which monitor you have so not sure.

It’s a BENQ SW270C. How could I tell if this is the issue?

There is a BenQ YouTube video that recommends you not to use HDMI.

As far as I can tell, that is an independent video and not related to BenQ?
Additinally, according to this link, (which again I appreciate is not official manufacturer guidance), the situation is far from clear cut and simply saying “don’t use HDMI for color accurate workflows” is an oversimplification.

Your monitor uses DisplayPort Alt Mode. So I don’t know why CPU usage is high in this case …

About HDMI, I agree it’s still ok to use. You can check if it broadcasts full range RGB like in here
https://wiki.archlinux.org/index.php/Xrandr#Full_RGB_in_HDMI

Thanks very much for the response.

I think I have found the source of the issue, and it’s partly down to user error…
I was supplying the laptop with power from the monitor (60W over USB-C, normal adaptor is 130W). I was fully aware of this, and had (wrongly) assumed that if the laptop wasn’t receiving enough power, it would begin to drain the battery even while plugged in.
I still need to do some more testing, but it appears that this assumption was wrong, and the laptop’s default behaviour is to throttle to only use available power instead of draining the battery.
By plugging in both the power and USB-C, I get the smooth performance I expected. Thanks all for the input!

3 Likes