Forwarding X11 to Nvidia server "couldn't find RGB GLX visual or fbconfig"

I have a home server which I connect to with ssh -XY user@IP in order to forward X11.

I am able to forward some X windows successfully, for example nix-shell -p xorg.xmessage --run "xmessage -center hello!". However I’m unable to forward anything requiring OpenGL:

$ glxgears
Error: couldn't get an RGB, Double-buffered visual
$ glxinfo
name of display: localhost:10.0
Error: couldn't find RGB GLX visual or fbconfig

A few things I’ve tried:

Using nouveau drivers forward successfully, however I require CUDA which isn’t supported by nouveau.

Using NixGL doesn’t change the output

Relevant bits of my configuration:

services.xserver.videoDrivers = [ "intel" "nvidia" ]; # also fails with [ "nvidia" ]
boot.kernelModules = [ "nvidia-uvm" ]; # also fails with when unset
services.openssh.forwardX11 = true;  # also fails with false

# custom zfsUnstable with zfs-head-master and linux 5_16
hardware.nvidia.package = pkgs.zfsUnstable.latestCompatibleLinuxPackages.nvidia_x11_beta;  # also fails when unset
boot.kernelPackages = pkgs.zfsUnstable.latestCompatibleLinuxPackages
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "isci" "usbhid" "usb_storage" "sd_mod" ];

# fails with or without the following code
  hardware.nvidia.prime = {
    sync.enable = true;
    nvidiaBusId = "PCI:131:0:0";
    intelBusId = "PCI:9:3:0";
  };
  hardware.nvidia.modesetting.enable = false;
  hardware.opengl = {
   driSupport = true;
   driSupport32Bit = true;
 };

System Details

$ nix-info
system: "x86_64-linux", multi-user?: yes, version: nix-env (Nix) 2.7.0pre20220127_558c4ee, channels(root): "nixos-21.11.335820.521e4d7d13b", channels(remote): "", nixpkgs: /etc/nixpkgs
$ uname -a
Linux host 5.16.8 #1-NixOS SMP PREEMPT Tue Feb 8 17:35:20 UTC 2022 x86_64 GNU/Linux
$nvidia-smi
...
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
...

Interesting X log bit I found:

[  6082.686] (II) AIGLX: Screen 0 is not DRI2 capable
[  6082.716] (EE) AIGLX error: dlopen of /run/opengl-driver/lib/dri/swrast_dri.so failed (/run/opengl-driver/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
[  6082.716] (EE) AIGLX error: unable to load driver swrast
[  6082.716] (EE) GLX: could not load software renderer
[  6082.716] (II) GLX: no usable GL providers found for screen 0

Debug:

$ lspci | grep -ia VGA
09:03.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)
83:00.0 VGA compatible controller: NVIDIA Corporation GM204 [GeForce GTX 980] (rev a1)
$ echo $XDG_SESSION_CLASS
user

$ echo $XDG_SESSION_DESKTOP

$ echo $XDG_SESSION_TYPE
tty
$ ldd $(which glxinfo)
	linux-vdso.so.1 (0x00007ffe5cfa6000)
	libGLEW.so.2.2 => /nix/store/h9bkqvrlvziwli0k7axiybxf0arln01i-glew-2.2.0/lib/libGLEW.so.2.2 (0x00007fc289c82000)
	libGLU.so.1 => /nix/store/04yj0nllw5bqzzlay5m6zzbmyw7csgnk-glu-9.0.2/lib/libGLU.so.1 (0x00007fc289c0e000)
	libGL.so.1 => /nix/store/5lzlfgrc37wqj400b4qgpaa6kc9d2wr1-libglvnd-1.4.0/lib/libGL.so.1 (0x00007fc289b80000)
	libm.so.6 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libm.so.6 (0x00007fc289a3f000)
	libX11.so.6 => /nix/store/6pdb0rz2w2hsfsy66kwrbz67jd424wv7-libX11-1.7.2/lib/libX11.so.6 (0x00007fc2898fa000)
	libXext.so.6 => /nix/store/a3yw11i2iskvr1zx2za4mwrj9sawq7hz-libXext-1.3.4/lib/libXext.so.6 (0x00007fc2898e3000)
	libpthread.so.0 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libpthread.so.0 (0x00007fc2898c3000)
	libc.so.6 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libc.so.6 (0x00007fc2896ed000)
	libSM.so.6 => /nix/store/f30jdkd21p3bayd6s2z3is7xfm4a43h9-libSM-1.2.3/lib/libSM.so.6 (0x00007fc2896e2000)
	libICE.so.6 => /nix/store/lmn5ybv6w9zsdk18sl37adlbvf9cm8c6-libICE-1.0.10/lib/libICE.so.6 (0x00007fc2896c4000)
	libstdc++.so.6 => /nix/store/ndnqiz3nnifj1blhg9q626xlmkqq1nmh-gcc-10.3.0-lib/lib/../lib64/libstdc++.so.6 (0x00007fc2894ed000)
	libgcc_s.so.1 => /nix/store/ndnqiz3nnifj1blhg9q626xlmkqq1nmh-gcc-10.3.0-lib/lib/../lib64/libgcc_s.so.1 (0x00007fc2894d3000)
	libGLX.so.0 => /nix/store/5lzlfgrc37wqj400b4qgpaa6kc9d2wr1-libglvnd-1.4.0/lib/libGLX.so.0 (0x00007fc28949e000)
	libGLdispatch.so.0 => /nix/store/5lzlfgrc37wqj400b4qgpaa6kc9d2wr1-libglvnd-1.4.0/lib/libGLdispatch.so.0 (0x00007fc2893e5000)
	libdl.so.2 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libdl.so.2 (0x00007fc2893e0000)
	/nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/ld-linux-x86-64.so.2 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib64/ld-linux-x86-64.so.2 (0x00007fc289d3f000)
	libxcb.so.1 => /nix/store/n1h6395818hn30bi5dk31smjwvhwawax-libxcb-1.14/lib/libxcb.so.1 (0x00007fc2893b2000)
	libuuid.so.1 => /nix/store/kx41yd3yyr9bwrsk85fhhx6qhavfwql6-util-linux-2.37.3-lib/lib/libuuid.so.1 (0x00007fc2893a9000)
	libXau.so.6 => /nix/store/x14h74lzrxk7j05pgqmba8yicb2bms6f-libXau-1.0.9/lib/libXau.so.6 (0x00007fc2893a4000)
	libXdmcp.so.6 => /nix/store/3ijd7iqmnwqvfyv4k8l5a8qw33agi1br-libXdmcp-1.1.3/lib/libXdmcp.so.6 (0x00007fc28939a000)
$ nix-store --query --references $(which glxinfo)
/nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108
/nix/store/6pdb0rz2w2hsfsy66kwrbz67jd424wv7-libX11-1.7.2
/nix/store/pi2h6nky70gww75w05zq1ch9fmycrvvy-libGL-1.4.0
$ nix-store --query --references $(which nvidia-smi)
/nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108
/nix/store/2mr45n3xcfsbvj6f9fl2s4v48chbhwy4-libdrm-2.4.109
/nix/store/n1h6395818hn30bi5dk31smjwvhwawax-libxcb-1.14
/nix/store/6pdb0rz2w2hsfsy66kwrbz67jd424wv7-libX11-1.7.2
/nix/store/a3yw11i2iskvr1zx2za4mwrj9sawq7hz-libXext-1.3.4
/nix/store/33gyg5fwgi7d76ybw5sdrcgs5jdhl4yk-libXrandr-1.5.2
/nix/store/4k40gdgf7ckimb3hlwywx76dj5435ack-libXv-1.0.11
/nix/store/ndnqiz3nnifj1blhg9q626xlmkqq1nmh-gcc-10.3.0-lib
/nix/store/pz2wx67gskw438ysws82nwk84whwd63d-wayland-1.20.0
/nix/store/5j7k2nrgvl6vnichkg4c1fwj1907nvgg-mesa-21.3.5
/nix/store/bqjh8dc6m5plswxrmmn9x4cpxrrw94lv-zlib-1.2.11
/nix/store/pi2h6nky70gww75w05zq1ch9fmycrvvy-libGL-1.4.0
/nix/store/1m06jadmgmzkqy0ry6sx9q0pkcbbkipv-nvidia-x11-510.47.03-5.10.99
$ ldd $(which nvidia-smi) 
	linux-vdso.so.1 (0x00007f1d13b33000)
	libpthread.so.0 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libpthread.so.0 (0x00007f1d13b0d000)
	libm.so.6 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libm.so.6 (0x00007f1d139cc000)
	libdl.so.2 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libdl.so.2 (0x00007f1d139c7000)
	libc.so.6 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libc.so.6 (0x00007f1d137ef000)
	librt.so.1 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/librt.so.1 (0x00007f1d137e4000)
	/nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/ld-linux-x86-64.so.2 => /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib64/ld-linux-x86-64.so.2 (0x00007f1d13b35000)
$ sudo lshw -c display
  *-display                 
       physical id: 3
       bus info: pci@0000:09:03.0
       version: 0a
       width: 32 bits
       clock: 33MHz
       capabilities: pm bus_master cap_list rom
       configuration: driver=mgag200 latency=64 maxlatency=32 mingnt=16
       resources: irq:16 memory:dd000000-ddffffff memory:df800000-df803fff memory:df000000-df7fffff memory:c0000-dffff
  *-display
       physical id: 0
       bus info: pci@0000:83:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:69 memory:fa000000-faffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:d000(size=128) memory:fb000000-fb07ffff
$ modinfo nvidia
filename:       /run/booted-system/kernel-modules/lib/modules/5.16.8/misc/nvidia.ko
firmware:       nvidia/510.39.01/gsp.bin
alias:          char-major-195-*
version:        510.39.01
supported:      external
license:        NVIDIA
srcversion:     70CDF5F4E6A9B189699C5B8
alias:          pci:v000010DEd*sv*sd*bc06sc80i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        i2c-core,drm
retpoline:      Y
name:           nvidia
vermagic:       5.16.8 SMP preempt mod_unload 
parm:           NvSwitchRegDwords:NvSwitch regkey (charp)
parm:           NvSwitchBlacklist:NvSwitchBlacklist=uuid[,uuid...] (charp)
parm:           NVreg_ResmanDebugLevel:int
parm:           NVreg_RmLogonRC:int
parm:           NVreg_ModifyDeviceFiles:int
parm:           NVreg_DeviceFileUID:int
parm:           NVreg_DeviceFileGID:int
parm:           NVreg_DeviceFileMode:int
parm:           NVreg_InitializeSystemMemoryAllocations:int
parm:           NVreg_UsePageAttributeTable:int
parm:           NVreg_RegisterForACPIEvents:int
parm:           NVreg_EnablePCIeGen3:int
parm:           NVreg_EnableMSI:int
parm:           NVreg_TCEBypassMode:int
parm:           NVreg_EnableStreamMemOPs:int
parm:           NVreg_RestrictProfilingToAdminUsers:int
parm:           NVreg_PreserveVideoMemoryAllocations:int
parm:           NVreg_EnableS0ixPowerManagement:int
parm:           NVreg_S0ixPowerManagementVideoMemoryThreshold:int
parm:           NVreg_DynamicPowerManagement:int
parm:           NVreg_DynamicPowerManagementVideoMemoryThreshold:int
parm:           NVreg_EnableGpuFirmware:int
parm:           NVreg_EnableUserNUMAManagement:int
parm:           NVreg_MemoryPoolSize:int
parm:           NVreg_KMallocHeapMaxSize:int
parm:           NVreg_VMallocHeapMaxSize:int
parm:           NVreg_IgnoreMMIOCheck:int
parm:           NVreg_NvLinkDisable:int
parm:           NVreg_EnablePCIERelaxedOrderingMode:int
parm:           NVreg_RegisterPCIDriver:int
parm:           NVreg_EnableDbgBreakpoint:int
parm:           NVreg_RegistryDwords:charp
parm:           NVreg_RegistryDwordsPerDevice:charp
parm:           NVreg_RmMsg:charp
parm:           NVreg_GpuBlacklist:charp
parm:           NVreg_TemporaryFilePath:charp
parm:           NVreg_ExcludedGpus:charp
parm:           rm_firmware_active:charp
$ lsmod
Module                  Size  Used by
af_packet              53248  2
cfg80211             1052672  0
rfkill                 32768  2 cfg80211
8021q                  40960  0
nls_iso8859_1          16384  0
nls_cp437              20480  0
vfat                   20480  0
fat                    86016  1 vfat
xt_mark                16384  4
xt_owner               16384  4
xt_connmark            16384  1
nft_chain_nat          16384  4
nf_nat                 57344  1 nft_chain_nat
xt_conntrack           16384  3
nf_conntrack          176128  3 xt_conntrack,nf_nat,xt_connmark
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
ipt_rpfilter           16384  1
xt_pkttype             16384  1
xt_LOG                 20480  1
nf_log_syslog          20480  1
xt_tcpudp              20480  12
nft_compat             20480  28
dm_crypt               61440  6
nft_counter            16384  37
cbc                    16384  0
encrypted_keys         24576  1 dm_crypt
trusted                40960  2 encrypted_keys,dm_crypt
asn1_encoder           16384  1 trusted
tee                    36864  1 trusted
tpm                    86016  1 trusted
rng_core               16384  1 tpm
nf_tables             266240  75 nft_compat,nft_counter,nft_chain_nat
libcrc32c              16384  3 nf_conntrack,nf_nat,nf_tables
crc32c_generic         16384  0
nfnetlink              20480  2 nft_compat,nf_tables
sch_fq_codel           20480  18
intel_rapl_msr         20480  0
edac_core              69632  0
intel_rapl_common      28672  1 intel_rapl_msr
x86_pkg_temp_thermal    20480  0
intel_powerclamp       20480  0
nvidia_drm             73728  0
snd_hda_codec_hdmi     73728  1
coretemp               20480  0
snd_hda_intel          57344  0
snd_intel_dspcfg       28672  1 snd_hda_intel
snd_intel_sdw_acpi     20480  1 snd_intel_dspcfg
crc32_pclmul           16384  0
snd_hda_codec         176128  2 snd_hda_codec_hdmi,snd_hda_intel
ghash_clmulni_intel    16384  0
atkbd                  36864  0
nvidia_modeset       1163264  1 nvidia_drm
snd_hda_core          106496  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
aesni_intel           380928  12
libps2                 20480  1 atkbd
libaes                 16384  1 aesni_intel
joydev                 28672  0
serio                  28672  1 atkbd
snd_hwdep              16384  1 snd_hda_codec
input_leds             16384  0
crypto_simd            16384  1 aesni_intel
cryptd                 24576  8 crypto_simd,ghash_clmulni_intel
led_class              20480  1 input_leds
mgag200                40960  0
iTCO_wdt               16384  0
snd_pcm               147456  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
igb                   262144  0
mousedev               24576  0
evdev                  24576  18
snd_timer              45056  1 snd_pcm
intel_pmc_bxt          16384  1 iTCO_wdt
loop                   32768  0
drm_kms_helper        311296  4 mgag200,nvidia_drm
ipmi_ssif              40960  0
watchdog               24576  1 iTCO_wdt
snd                   110592  6 snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm
fb_sys_fops            16384  1 drm_kms_helper
mxm_wmi                16384  0
syscopyarea            16384  1 drm_kms_helper
mac_hid                16384  0
soundcore              16384  1 snd
sysfillrect            16384  1 drm_kms_helper
ptp                    32768  1 igb
rapl                   16384  0
sysimgblt              16384  1 drm_kms_helper
acpi_ipmi              20480  0
intel_cstate           20480  0
pps_core               24576  1 ptp
tun                    61440  2
i2c_algo_bit           16384  2 igb,mgag200
ipmi_si                73728  1
tap                    28672  0
lpc_ich                28672  0
ipmi_devintf           20480  0
intel_uncore          204800  0
macvlan                28672  0
hed                    16384  0
ioatdma                61440  0
mfd_core               20480  2 intel_pmc_bxt,lpc_ich
mei_me                 45056  0
ipmi_msghandler        73728  4 ipmi_devintf,ipmi_si,acpi_ipmi,ipmi_ssif
i2c_i801               36864  0
mei                   151552  1 mei_me
bridge                303104  0
i2c_smbus              20480  1 i2c_i801
dca                    16384  2 igb,ioatdma
stp                    16384  1 bridge
llc                    16384  2 bridge,stp
nvidia_uvm           1200128  0
wmi                    36864  1 mxm_wmi
tiny_power_button      16384  0
button                 24576  0
nvidia              39108608  2 nvidia_uvm,nvidia_modeset
drm                   638976  5 drm_kms_helper,nvidia,mgag200,nvidia_drm
agpgart                49152  1 drm
backlight              24576  2 drm_kms_helper,drm
i2c_core              102400  9 drm_kms_helper,i2c_algo_bit,igb,nvidia,mgag200,i2c_smbus,i2c_i801,ipmi_ssif,drm
kvm_intel             352256  0
kvm                  1028096  1 kvm_intel
configfs               57344  1
fuse                  147456  1
irqbypass              16384  1 kvm
pstore                 28672  1
ip_tables              28672  1
x_tables               53248  10 xt_conntrack,nft_compat,xt_LOG,xt_tcpudp,xt_owner,xt_connmark,ipt_rpfilter,xt_pkttype,ip_tables,xt_mark
autofs4                53248  7
hid_generic            16384  0
usbhid                 65536  0
hid                   147456  2 usbhid,hid_generic
sd_mod                 57344  20
t10_pi                 16384  1 sd_mod
crc_t10dif             20480  1 t10_pi
crct10dif_generic      16384  0
isci                  163840  0
xhci_pci               20480  0
xhci_pci_renesas       20480  1 xhci_pci
ahci                   45056  20
libsas                102400  1 isci
xhci_hcd              315392  1 xhci_pci
libahci                45056  1 ahci
scsi_transport_sas     49152  2 isci,libsas
ehci_pci               20480  0
libata                290816  4 isci,libahci,ahci,libsas
ehci_hcd               98304  1 ehci_pci
crct10dif_pclmul       16384  1
crct10dif_common       16384  3 crct10dif_generic,crc_t10dif,crct10dif_pclmul
usbcore               327680  5 xhci_hcd,ehci_pci,usbhid,ehci_hcd,xhci_pci
crc32c_intel           24576  1
scsi_mod              266240  5 isci,scsi_transport_sas,sd_mod,libsas,libata
usb_common             16384  3 xhci_hcd,usbcore,ehci_hcd
scsi_common            16384  3 scsi_mod,libsas,libata
rtc_cmos               28672  1
dm_mod                151552  19 dm_crypt
zfs                  3895296  16
zunicode              335872  1 zfs
zzstd                 569344  1 zfs
zlua                  184320  1 zfs
zcommon               102400  1 zfs
znvpair               106496  2 zfs,zcommon
zavl                   16384  1 zfs
icp                   323584  1 zfs
spl                   114688  6 zfs,icp,zzstd,znvpair,zcommon,zavl
2 Likes

I know it’s been 5 months, but, had any solution on this?
I’m finding myself in the same spot right now