NVIDIA # FATAL gpu_data_manager_impl_private.cc 445 GPU process isn't usable. Goodbye

via Home-Manager

"nixpkgs-unstable": {
        "branch": "nixpkgs-unstable",
        "description": "Nix Packages collection",
        "homepage": "",
        "owner": "NixOS",
        "repo": "nixpkgs",
        "rev": "d08394e7cd5c7431a1e8f53b7f581e74ee909548",
        "sha256": "188h461pilsiym2dqzl17vx1g9pb816cwdi0az9mbw207w721avz",
        "type": "tarball",
        "url": "https://github.com/nixos/nixpkgs/archive/d08394e7cd5c7431a1e8f53b7f581e74ee909548.tar.gz",
        "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"

lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation TU104GL [Quadro RTX 4000] (rev a1)

[2:0415/183017.464518:FATAL:gpu_data_manager_impl_private.cc(445)] GPU process isn't usable. Goodbye.

glxinfo | grep 'OpenGL render'                
OpenGL renderer string: Quadro RTX 4000/PCIe/SSE2


Fri Apr 15 18:44:13 2022       
| NVIDIA-SMI 510.60.02    Driver Version: 510.60.02    CUDA Version: 11.6     |
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|   0  Quadro RTX 4000     Off  | 00000000:01:00.0  On |                  N/A |
| 30%   40C    P5    20W / 125W |   1100MiB /  8192MiB |     25%      Default |
|                               |                      |                  N/A |
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|    0   N/A  N/A      7426      G   ...xorg-server-1.20.13/bin/X      610MiB |
|    0   N/A  N/A      7531      G   ...nt-system/sw/bin/kwin_x11       28MiB |
|    0   N/A  N/A      7585      G   ...ce-5.23.3/bin/plasmashell       67MiB |
|    0   N/A  N/A      7959      G   ...0esr/bin/.firefox-wrapped      141MiB |
|    0   N/A  N/A      8079      G   .../bin/.thunderbird-wrapped       69MiB |
|    0   N/A  N/A      9539      G   ...523466407524063513,131072       13MiB |
|    0   N/A  N/A     14177      G   ...RendererForSitePerProcess       67MiB |
|    0   N/A  N/A     14677      G   ...082295341644296584,131072       94MiB |
nvidia-offload glxinfo | grep "OpenGL renderer"
nvidia-offload: command not found

How to analyze the issue?

Are you trying to use a mixed CPU/GPU laptop’s dedicated GPU?

The nvidia wiki entry has a section on that: Nvidia - NixOS Wiki

(I hadn’t defined nvidia-offload)

(node:2) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron.  See https://github.com/electron/electron/issues/23506 for more information
[2:0415/204039.703944:FATAL:gpu_data_manager_impl_private.cc(445)] GPU process isn't usable. Goodbye.

VScode shows:

Writing login information to the keychain failed with error 
The name org.freedesktop.secrets was not provided by any .service files'

A quick duck of this brings up this issue: FATAL:gpu_data_manager_impl_private. · Issue #1628 · iotaledger/firefly · GitHub. Looks like it’s an electron bug you can work around by either disabling hardware acceleration or using --disable-gpu-sandbox or --ignore-gpu-blacklist. I’d report it to the upstream of that application, though I imagine there’s not much they can do either, and I guess that it’s already been reported to electron.

These errors are benign, assuming you don’t have a keychain provider. It doesn’t break any actual functionality, it just means you need to manage storing your secrets yourself. If you want to use a keychain provider, use something like gnome.seahorse or libsForQt5.kwallet, or just use KDE/GNOME outright.

like (always) everything UI related is always best from only one channel

  • Home-Manger took the app from unstable (whole the system is on nixos-21.11)

Ah, yep. home-manager actually recommends using the same channel as upstream, so it’s maybe worth pinning both to stable (or unstable if you actually need newer things).