New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Packages should be able to easily depend on a pure software rendering version of libGL #62032
Comments
When no libGL drivers are found, we will fall back to “libGLX_mesa.so” which corresponds to the mesa “swrast” driver. This uses some X11 apis for rendering, and is suitable for many use cases of . This is still not as good as having the hardware drivers. Adding libGLX_mesa.so to the closures ends up adding about 1MB, which is signifcant but still acceptable. Fixes NixOS#62032 Fixes NixOS#62169 Fixes NixOS#9415
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 Git blame or GitHub's web interface on the relevant files to find them. Lastly, you can always ask for help at our Discourse Forum or at #nixos' IRC channel. |
still important for me |
I marked this as stale due to inactivity. → More info |
pls don't |
I marked this as stale due to inactivity. → More info |
It may be a good idea to have a standard way to get a software-only build of Mesa (you can already get it by overriding, but that's awkward), but packages depending on it is by default is something I'd be heavily against. "But it's more pure" is not a valid justification for delivering a bad user experience. |
Hi, I’d like to use mesa (e.g. mesa-noglu-18.3.4) for software rendering, because the GUI I’m packaging doesn’t depend on high-performance graphics, and software rendering would be a nice way to make the package more pure.
Somewhat like this, but replace glxinfo with the app:
$ LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=llvmpipe glxinfo
But when I use mesa, I always see libglvnd sending requests to my X server, presumably to ask which vendor to use.
$ nix-shell -p mesa glxinfo
[nix-shell:~]$ LIBGL_ALWAYS_SOFTWARE=1 LIBGL_DEBUG=verbose strace glxinfo
...
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
...
openat(AT_FDCWD, "/nix/store/69vq0a9sqynmz335apm8zgyjdmq34s5j-libX11-1.6.7/lib/libGLX_nvidia.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/lswf09qbkkrqd0rgzaqyrkr44lf78y9x-libXext-1.3.4/lib/libGLX_nvidia.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/nj5w33n15zrn8xsm9q0vf3pk0j0j9sj8-libglvnd-1.0.0/lib/libGLX_nvidia.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
...
In my case I have an nvidia driver installed on Ubuntu 16.04 — non NixOS. So it looks for libGLX_nvidia instead of libGLX_mesa. To be honest, I’m not 100% sure if libGLX_mesa is necessary for software rendering, but libGLX_nvidia is definitely the wrong thing.
Thoughts? Would a simple mesa libGL.so (instead of going through libglvnd) be correct? Curious why mesa-noglu-18.3.4 doesn’t have one.
The text was updated successfully, but these errors were encountered: