Change:
Yes. We have a package which is what I tried, but since it’s a thin wrapper around it’s possible that it’s still not built with the right options. Also I’ve noticed these messages from : does not show the extension, and GLX applications fail to start. Originally posted by in I probably merged , too early. I'm not totally sure this is working properly.
This is pretty much a help wanted because I lack the depth of knowledge and hardware to help anymore with Nvidia things. My goal with finishing was that it could be possible and improved upon. i.e packages are built with the capability etc.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
The last few evenings, I have tinkered around a bit. I was not successful so far. Here are my findings: I have set the following options: This page says that there is no acceleration support for xwayland and nvidia yet but glxgears fails to start, so I think this is another issue There are multiple versions of : One from the egl-wayland package, the other from nvidia-x11 package. As the one in is loaded, I tried to replace it with the one from egl-wayland. Though, the result is the same with both. When starting an application, which would use acceleration, I can observe this line in the kernel log: Using , I can see that is accessed, though one of the calls fails: one more thing: looking at , gnome-shell is listed. Maybe it has working acceleration? Edit: Got a bit further: Found a reference to an additional directory, which is used to look up libraries: Creating a file in there: with the file in /run/opengl-driver/lib/libnvidia-egl- being replaced by the one from egl-wayland package. Now the error in xwayland is just a warning: I can run a wayland native terminal, but still fails If you have any suggestions, what to try next, I would be glad to give it a try.
Hello, I'm a bot and I thank you in the name of the community for opening this issue. To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human. The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it. If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use or on the relevant files to find them. Lastly, you can always ask for help at or at .
I'm trying to get this working as well. However I can't even get the session chooser in GDM in 20.09. Is it only working in unstable? Any tips? Here's my config
With this overlay and the 470.42.01 driver, nvidia is usable with xwayland. :tada: , unigene-valley and so far every game I started on Steam. Only issues I have so far are that chrome does not start properly Workaround is to start it with some options: and in CSGO there is noticeable input delay.
I've updated to the latest nixos-unstable () which includes updated & , but I'm still facing issues. While it's generally working I have problems with some apps. : : : Additionally in my system logs I can see: & are both working. My relevant config: I also tried using an overlay to apply the new meson flags from overlay: Is there anything else I need to set up?
also fails with
I have a very similar setup as and am experiencing precisely the same errors. I'm not sure whether it's an issue with gnome, my particular config, or what. Things work fine when running in an X session.
:thinking: I don't see anything missing with your config . I have updated my config to and removed the overlay. and are producing the same errors, and chrome won't function properly unless started with and are working for me, as well as and and . Note: Seam is installed via but this should only be relevant for running games inside steam, not steam itself.
I came here because I'm experiencing the same as and Can't launch Steam or Kitty under Wayland: nvidia: 470.42.01 xwayland: 21.1.2 Config is virtually identical to
I found this issue because I had the same problem as After reading , I tried to create a different file (listed in the end). And that solved my problem. With this file, I can open steam. However, alacritty still has an error. Maybe that relates to another . The cause of this problem is that even though both and packages provide , cannot be found without a json file. The says: So, maybe we should add a json file /usr/share/egl/eglexternalplatform.d /xxx.jsonnvidia-x11egl-waylandlibnvidia-egl-wayland.solibnvidia-egl-, gnome setting says my video card is "Unknown". In the end, I will post my related config:
I filed this issue to see if we can patch to look in the right place: If we can't get it to look in then we should probably just add the etc symlink in the nixos module so that this works correctly for end users out of the box. I'll send an initial PR shortly and will update it in that egl-wayland issue gets a useful answer (or if there's another way to patch a closed source SO that I'm not thinking of).
BTW, I can confirm the different results. When I override nvidia's with our "upstream" one, I get more info in , but I'm not sure if there are other functional differences. Not sure what I would've expected, but it nags me that there's a difference.
PR:
Interesting, there IS a way to override the egl_externaplatform search path(s):
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
would this still be an issue after ?
I think it needs and
I am taking over as I've been using that setup as a daily driver and have a rough working understanding of the pieces fitting together. And to confirm, the general problem here, that is addressed in , is EGLStreams working in Wayland environment with the NVIDIA driver (aka, it doesn't now because we don't "wire up" NVIDIA's egl driver per egl-wayland's expectations). That is pretty tangential to NVIDIA having a driver that supports GBM allocation and "wiring it up" (an extra piece included in ), and it being discoverable (whatever I send to replace ). Hope that helps.
Also, to reiterate, is good to merge independently on it's own and will resolve this issue. Separately, a replacement for will be necessary for the ideal Sway scenario without users having to set an extra env var.
I thought the point of the new Nvidia driver was to finally move away from EGLStreams? Is EGLStreams used by the new stable driver at all?
I don't know? It doesn't really matter, we should still fix it? Like, the fundamental issue is that we're simply not installing the Nvidia driver correctly for NixOS when it comes to these important configuration JSON files. Plus, it's not like everything is going to immediately switch to GBM, drop EGL, know about the env var, on and on. That, and the wiring for GBM is in that PR and I'm not splitting them apart at the current merge rate.

Discussion:
source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc"; }; <ins> # 'nvidia_x11' installs it's files to /run/opengl-driver/... environment.etc."egl/egl_external_platform.d".source = "/run/opengl-driver/share/egl/egl_external_platform.d/"; </ins> hardware.opengl.package = mkIf (!offloadCfg.enable) nvidia_x11.out; hardware.opengl.package32 = mkIf (!offloadCfg.enable) nvidia_x11.lib32; hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;

sed -E "s#(libEGL_nvidia)#$i/lib/1#" 10_nvidia.json > 10_nvidia.json.fixed sed -E "s#(libnvidia-egl-wayland)#$i/lib/1#" 10_nvidia_wayland.json > 10_nvidia_wayland.json.fixed <del> install -Dm644 10_nvidia.json.fixed $i/share/glvnd/egl_vendor.d/nvidia.json install -Dm644 10_nvidia_wayland.json.fixed $i/share/glvnd/egl_vendor.d/nvidia_wayland.json </del> <ins> install -Dm644 10_nvidia.json.fixed $i/share/glvnd/egl_vendor.d/10_nvidia.json install -Dm644 10_nvidia_wayland.json.fixed $i/share/egl/egl_external_platform.d/10_nvidia_wayland.json if [[ -f "15_nvidia_gbm.json" ]]; then sed -E "s#(libnvidia-egl-gbm)#$i/lib/1#" 15_nvidia_gbm.json > 15_nvidia_gbm.json.fixed install -Dm644 15_nvidia_gbm.json.fixed $i/share/egl/egl_external_platform.d/15_nvidia_gbm.json mkdir -p $i/lib/gbm ln -s $i/lib/libnvidia-allocator.so $i/lib/gbm/nvidia-drm_gbm.so fi </ins> fi done

i686bundled = versionAtLeast version "391" && !disable32Bit; libPathFor = pkgs: pkgs.lib.makeLibraryPath [ pkgs.libdrm pkgs.xorg.libXext pkgs.xorg.libX11 <del> pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc ]; </del> <ins> pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc pkgs.wayland ]; </ins> self = stdenv.mkDerivation { name = "nvidia-x11-${version}${nameSuffix}";