Dead slow output from NVIDIA GPU

Hardware :

  • Panasonic Toughbook CF53
  • Intel i5-3340M CPU , 8 GiB DDR3 RAM
  • Zotac GTX 750 Desktop GPU
  • EXP GDC mPCIe Adapter connecting the laptop to the desktop GPU.
    I know this unsupported tinkerer hardware, but it’s not the cause here. I can assure you
    that Windows 7 & 10 as well as Ubuntu 20.04 and FreeBSD 13.0 worked on the same hw with the same driver. This device is vulnerable to interference , but I have insulated it sufficiently and that’s not the issue.
  • Using the included DVI-I to VGA adapter for a generic 1680x1050 60Hz display, no overclocking (it goes up to 70Hz on Windows).

Software :

  • BIOS and UEFI are available, same problem with both.
  • Manjaro 21.1.0 KDE Minimal LTS
  • KDE Plasma 5.22.4
  • Linux 5.10.59-1-MANJARO (64-bit) LTS kernel.
  • Nvidia driver 470.63.01.
    I didn’t install the Nvidia driver myself. It seems to have come helpfully pre-installed because I noticed that it was upgraded when I upgraded from the built-in 5.4 LTS kernel to the 5.10 LTS kernel in KDE System Settings.

Symptoms :

  • Very, very sluggish UI. Login screen takes tens of seconds to display each password character and so does everything else inside. Konsole doesn’t even render fully. I only see the window’s decoration and nothing I type is displayed and there’s no prompt either.
  • Once somehow logged in, the UI is so slow I can pretty much see every frame being rendered every two or so seconds.
  • Very strangely , the cursor is the only thing that moves at an expected level of smoothness.
  • As I have an Intel HD iGPU, I can confirm that it works 100% okay when using that display output. In fact, even the installation ISO was similarly laggy/sluggish on the Nvidia output so I did the install with it disconnected and using the iGPU.

Please let me know if you wish to know more info or the output of some commands. Thanks in advance !


EDITS :

  • Tried downgrading to 5.4 LTS kernel that Manjaro KDE ships with. Does not fix.
  • Tried using the iGPU output while Nvidia GPU was connected. Smooth as usual. Only Nvidia GPU’s output is problematic, the rest of the system is not slowed down.
  • Tried open source nouveau drivers by selecting Boot with open source drivers option in the Live Installer. It’s just as bad. This issue is thus replicable on the stock ISO on both open and closed source drivers.
  • Feeling that maybe I’m in the wrong for using tinkerer hardware , I tried Ubuntu 20.04.3 (LTS) . The install media boots and runs just fine on the same hardware, and the Nvidia GPU output is smooth as can be. This not a hardware issue. Most likely , not a kernel issue, nor a driver issue either.
  • I tested Manjaro XFCE as well as Kubuntu , they both have this problem.

if you can ,
boot on USB live iso manjaro
open a terminal and a browser on this topic
and return

inxi -Fazy
1 Like

Alright, here’s the output from the live install media under the following conditions :

  • Manjaro KDE 21.1.0 Minimal LTS Install Media
  • Boot with proprietary drivers
  • NVIDIA GPU slotted in, but display output used from Intel iGPU, because it’s unusable otherwise
System:
  Kernel: 5.4.141-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=us tz=UTC 
  misobasedir=manjaro misolabel=MANJARO_KDEM_2110 quiet systemd.show_status=1 
  apparmor=1 security=apparmor driver=nonfree nouveau.modeset=0 i915.modeset=1 
  radeon.modeset=1 
  Desktop: KDE Plasma 5.22.4 tk: Qt 5.15.2 wm: kwin_x11 vt: 1 dm: SDDM 
  Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Laptop System: Panasonic product: CF-53SAPZYC7 v: 003 serial: <filter> 
  Chassis: type: 10 v: 001 serial: <filter> 
  Mobo: Panasonic model: CF53-3 v: 1 serial: <filter> 
  BIOS: American Megatrends v: 3.00L11 date: 07/03/2014 
Battery:
  ID-1: BAT1 charge: 60.9 Wh (99.5%) condition: 61.2/68.0 Wh (90.0%) 
  volts: 12.2 min: 10.8 model: Panasonic CF-VZSU71 type: Li-ion 
  serial: <filter> status: Unknown 
CPU:
  Info: Dual Core model: Intel Core i5-3340M bits: 64 type: MT MCP 
  arch: Ivy Bridge family: 6 model-id: 3A (58) stepping: 9 microcode: 21 
  cache: L2: 3 MiB 
  flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 21561 
  Speed: 1197 MHz min/max: 1200/3400 MHz Core speeds (MHz): 1: 1197 2: 1197 
  3: 1197 4: 1197 
  Vulnerabilities: Type: itlb_multihit status: KVM: Split huge pages 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds status: Vulnerable: No microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics vendor: Matsushita 
  driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:0166 class-ID: 0300 
  Device-2: NVIDIA GM107 [GeForce GTX 750] vendor: ZOTAC driver: nvidia 
  v: 470.63.01 alternate: nouveau,nvidia_drm bus-ID: 09:00.0 
  chip-ID: 10de:1381 class-ID: 0300 
  Display: x11 server: X.Org 1.20.13 compositor: kwin_x11 driver: 
  loaded: modesetting,nvidia alternate: fbdev,intel,nouveau,nv,vesa 
  display-ID: :0 screens: 1 
  Screen-1: 0 s-res: 1680x1050 s-dpi: 96 s-size: 444x277mm (17.5x10.9") 
  s-diag: 523mm (20.6") 
  OpenGL: renderer: Mesa DRI Intel HD Graphics 4000 (IVB GT2) 
  v: 4.2 Mesa 21.1.6 compat-v: 3.0 direct render: Yes 
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio 
  vendor: Matsushita driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 
  chip-ID: 8086:1e20 class-ID: 0403 
  Device-2: NVIDIA GM107 High Definition Audio [GeForce 940MX] vendor: ZOTAC 
  driver: snd_hda_intel v: kernel bus-ID: 09:00.1 chip-ID: 10de:0fbc 
  class-ID: 0403 
  Sound Server-1: ALSA v: k5.4.141-1-MANJARO running: yes 
  Sound Server-2: JACK v: 1.9.19 running: no 
  Sound Server-3: PulseAudio v: 15.0 running: yes 
  Sound Server-4: PipeWire v: 0.3.33 running: yes 
Network:
  Device-1: Intel 82579LM Gigabit Network vendor: Matsushita driver: e1000e 
  v: 3.2.6-k port: f080 bus-ID: 00:19.0 chip-ID: 8086:1502 class-ID: 0200 
  IF: enp0s25 state: up speed: 100 Mbps duplex: full mac: <filter> 
Drives:
  Local Storage: total: 365.08 GiB used: 0 KiB (0.0%) 
  SMART Message: Unable to run smartctl. Root privileges required. 
  ID-1: /dev/sda maj-min: 8:0 vendor: Seagate model: ST320LT020-9YG142 
  size: 298.09 GiB block-size: physical: 4096 B logical: 512 B speed: 3.0 Gb/s 
  type: HDD rpm: 5400 serial: <filter> rev: HPM1 scheme: MBR 
  ID-2: /dev/sdb maj-min: 8:16 vendor: A-Data model: SP600 size: 59.63 GiB 
  block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s type: SSD 
  serial: <filter> rev: 6.1H scheme: MBR 
  ID-3: /dev/sdc maj-min: 8:32 type: USB vendor: Transcend 
  model: JetFlash Transcend 8GB size: 7.36 GiB block-size: physical: 512 B 
  logical: 512 B type: SSD serial: <filter> rev: 1.00 scheme: MBR 
  SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure? 
Partition:
  Message: No partition data found. 
Swap:
  Alert: No swap data was found. 
Sensors:
  System Temperatures: cpu: 56.0 C mobo: 56.0 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 209 Uptime: 2m wakeups: 1 Memory: 7.64 GiB used: 2.52 GiB (33.0%) 
  Init: systemd v: 248 tool: systemctl Compilers: gcc: N/A Packages: 
  pacman: 1069 lib: 294 Shell: Bash v: 5.1.8 running-in: konsole inxi: 3.3.06

I get your point, but they are impractical. Not only is driver support iffy, but you do encounter performance penalties: https://egpu.io/forums/mac-setup/pcie-slot-dgpu-vs-thunderbolt-3-egpu-internal-display-test/

All I can suggest is this: External GPU - ArchWiki

Ideal setup is just a desktop though.

I get your point too. They are highly niche , and are a waste of money or time if your hardware and requirements aren’t specifically in that niche. For me, it is a spectacular way to get occasional mid-2000s gaming done dirt cheap, so cheap that it’s worth the performance penalty. I have no personal desktop systems either.

It works very well on Windows (which is where I used to game) and Ubuntu (which I left due to PPAs). Not sure what the issue is, and it could be the hardware/driver or both, but I’ll do some more testing before confirming that.

I’ll be trying an Ubuntu live installer (to check) and the open source Nvidia drivers if no tinkering works. Thanks for the arch wiki page, will try the suggestion there.

Was the lag present when you run inxi?

No. This is because the lag is very bad and konsole doesn’t render fully beyond just the window decorators when using the Nvidia GPU output. So while the Nvidia GPU was connected , the drivers loaded and the outputting when I ran inxi, I was using the Intel HD iGPU’s output. It doesn’t make a difference though.

Did some search, and it seems the support for eGPU on linux, specially your system, toughbook CF53, seems bad.
Also EXP GDC mPCIe only uses ONE PCIe lane to communicate with the cpu. I don’t think it will be much better than iGPU.

1 Like

Thanks for replying !

My EXP GDC mPCIe uses 2 PCIe lanes at gen2 speeds from what my BIOS and system tell me.

It is much better than the iGPU and works flawlessly on Windows and Ubuntu/Lubuntu but not on Manjaro XFCE/KDE/Sway and Kubuntu.

Any idea why this is ?

Are you using laptop screen alongside external monitor?
Or just external monitor?

Which drivers did you install? Libre (open source) drivers, Nvidia only, or Nvidia-intel-hybrid?

This:

means OP has hybrid as both i915 and nvidia are loaded…

Although I’m a moderator on this site, this is not me trying to berate you or anything like that: just helping you to become a more productive member of this web site.

:+1:

1 Like

Very relevant question that I should have explicitly addressed in the question ; yes I disable the laptop screen shortly after logging in by unchecking Enabled in the menu found by searching display settings in the menu summoned with the super key. I cannot disconnect the laptop LVDS physically, nor in firmware.

This does however mean that the laptop was booted up and started X, the WM/Compositor and the display driver with both screens enabled. Could this be a source of trouble ?

I’ve done the same on Windows and with both Windows and Linux I get the idea that the iGPU drives the LVDS while the Nvidia GPU drives the external monitor.

As mentioned, I’ve tried using the kernel provided nouveau drivers as well as the proprietary drivers (using the Boot with free/proprietary drivers option in Manjaro installer GRUB menu) .

Specifically, I tried the 460.63.01 (latest stable) Nvidia driver as well as kernel’s nouveau independently each in both the 5.4 LTS kernel (which Manjaro ships with) and the 5.10 LTS kernel (latest LTS). In all cases, the i915 Intel iGPU drivers were also loaded by the kernel because I cannot in firmware and have not in kernel disabled that (as it is the only usable video output).

Maybe I missed it, but what are you doing to make the nvidia gpu the renderer?

1 Like

Nothing explicit. The kernel does that on it’s own ? What should I be doing …?

I would recommend you to try two possible solutions,

  1. Use the computer with both the screens (one connected to eGPU and laptop’s screen) either in extended mode, or unify their outputs.
  2. Remove the hybrid drivers and install video-nvidia (you won’t be able to use laptop screen, or any display connected directly to the laptop, after display manager is launched).

If both of them fail, then maybe you should look into optimus-manager. I don’t know if it will work with eGPU setup or not. It is used in laptops with Nvidia dGPU and an iGPU to control which GPU should be used.

Reasoning:

I bought a new laptop for myself a few weeks ago and had to spent a lot of time trying to get type-C display out working.

I discovered that when the laptop was running in hybrid graphics mode(through optimus manager), and if I was only using the display that was connected to the Nvidia dGPU(type-C), it would lag a lot. But if I enabled a second screen, either the laptop’s screen or another monitor connected to the HDMI, the lag was gone. Also, If I switched to Nvidia Graphics mode through optimus manager, then the Type-C display would work without lag, even without activating another display.

After installing manjaro with libre drivers, I booted into the OS and through Manjaro Settings Manager, I removed the libre drivers and installed Video-Nvidia proprietary drivers. This ended up with only the type-C output working, as this was the only one connected directly to the Nvidia dGPU.

1 Like
  1. Execute:

    primerun glxgears
    

    (prime-run actually activates the GPU in a hybrid environment for that application)

  2. wait for 10-15 seconds

  3. Post output of the terminal, formatted as code (</> or ```)


if you want to run Firefox on the GPU only, execute:

prime-run firefox

etc…

@Fabby and @LyraleiBreeze I was about to try, but now when I boot with the Nvidia GPU connected, it’s fans spin up but the desktop doesn’t render to external display, and Display Configuration does not show the external display as an option.

This was with the video-hybrid-intel-nvidia-prime driver, after a large updating a week ago. I tried thereafter the video-nvidia as well as the video-linux drivers using mhwd but no use. inxi -G shows the card details and says driver: N/A

What happened ?

Sorry, nevermind - the issue was that I installed optimus-manager as suggested by @LyraleiBreeze but it’s default Xconfig cause the drivers to not be loaded. That was the issue. Uninstalling optimus-manager fixed it.

I removed the video-hybrid-intel-nvidia-prime, because I don’t need output on my laptop’s display. Then, I tried video-nvidia and it gets stuck during boot at the root filesystem check message forever. So, I switched to a tty and removed it and installed video-nvidia , which is just fine but has horrendous screen tearing . Any idea how to fix ?

Topic closed as original issue was self-inflicted, so the solution was to remove the package that introduced the error in the first place. :grin: