Nvidia GPU always idle at 0%

Recently upgraded to a nvidia RTX 4060 Ti, but monitoring with nvtop shows it is sitting at 0% usage at all times no matter what I’m doing. For example, running unigine-heaven benchmark gives frame rates around 10 FPS (about 1-2% what is expected) while nvtop reports 0% GPU usage. Similar results for games; they run, but VERY low framerates. I suspect it might be a driver issue that I’m having trouble tracking down, like the GPU is using some sort of fallback. Can anyone provide some insight into what might be happening?

inxi -G

Graphics:
  Device-1: NVIDIA AD106 [GeForce RTX 4060 Ti 16GB] driver: nvidia
    v: 535.104.05
  Display: x11 server: X.Org v: 21.1.8 with: Xwayland v: 23.2.0 driver: X:
    loaded: nvidia unloaded: fbdev,modesetting,vesa gpu: nvidia,nvidia-nvswitch
    resolution: 1920x1080~60Hz
  API: OpenGL v: 4.6.0 NVIDIA 535.104.05 renderer: NVIDIA GeForce RTX 4060
    Ti/PCIe/SSE2

pacman -Q | grep nvidia

lib32-nvidia-utils 535.104.05-1
nvidia-dkms 535.104.05-1
nvidia-hook 1.3-1
nvidia-inst 23-7
nvidia-installer-common 23-7
nvidia-settings 535.104.05-1
nvidia-utils 535.104.05-1
opencl-nvidia 535.104.05-1

nvidia-inst --drivers

NVIDIA card id: 2805
Fetching driver data from nvidia.com ...

Series 535: supported (nvidia.com: 535.104.05)

Other notes:

  • A nvidia GTX 1650 works as expected when I swap it back in with no other system changes. I.e. power down, swap the cards over, power on, everything is running fine.
  • I have confirmed the new RTX 4060 works as expected on a Windows machine.
  • nvtop shows GPU memory is being used.
  • I get this error when running nvidia-settings, not sure how to interpret it since the nvidia-settings GUI launches anyway and looks fine as far as I can tell.
(nvidia-settings:7102): GLib-GObject-CRITICAL **: 09:56:55.971: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

ERROR: An internal driver error occurred

I’m not sure why nvidia-settings would be failing, but what is the output of ls /dev/dri? I have a dual GPU setup and had to fidget with it a lot to get it working; check out this part of the sway Github description for a bit of background. Specifically, setting WLR_DRM_DEVICES= to the correct /dev/dri device in your /etc/environment may help you.

I should note that I do not have a dual GPU setup and no integrated graphics either. This is kind of confusing since I am still getting an output from the GPU, it just doesn’t seem to being used under load. I.e. no temperature increase, fans remain idle, seemingly 0% usage and a tiny fraction of the performance expected for 3D rendering.

ls /dev/dri

by-path  card0  renderD128

I added WLR_DRM_DEVICES=card0 to /etc/environment, but no change.