Add libglvnd packages/Add EGL support#14572
Conversation
|
Confirmed working with #14372 using the following config files for an external
---
packages:
opengl:
paths:
[email protected]+egl+glx+glvnd: /usr
variants: +glvnd+egl+glx
buildable: False
---
modules:
tcl:
[email protected]+glx+glvnd:
environment:
set:
__GLX_VENDOR_LIBRARY_NAME: nvidia
[email protected]+egl+glvnd:
environment:
set:
__EGL_VENDOR_LIBRARY_FILENAMES: /usr/share/glvnd/egl_vendor.d/10_nvidia.json |
fb26061 to
e529bac
Compare
Marked as
So, this is interesting. Would there be two different entries? It seems like that would give two different specs and that you might just have a single entry:
---
modules:
tcl:
[email protected]+egl+glx+glvnd:
environment:
set:
__EGL_VENDOR_LIBRARY_FILENAMES: /usr/share/glvnd/egl_vendor.d/10_nvidia.json
__GLX_VENDOR_LIBRARY_NAME: nvidia |
|
@chuckatkins my understanding is that these entries are not mutually exclusive. The way to read my EDIT: Of course, your suggestion would work fine, too, if you only ever dealt with |
|
@opadron I tried to rebase this branch locally on f396106 and this is the module I get using the configs mentioned at #14572 (comment): #%Module1.0
## Module file created by spack (https://github.com/spack/spack) on 2020-02-18 18:35:40.269362
##
## [email protected]%[email protected]+egl+glvnd+glx arch=linux-ubuntu18.04-broadwell/hflpxtp
##
## Configure options: unknown, software installed outside of Spack
##
module-whatis "Placeholder for external OpenGL libraries from hardware vendors"
proc ModulesHelp { } {
puts stderr "Placeholder for external OpenGL libraries from hardware vendors"
}
prepend-path MANPATH "/usr/share/man"
prepend-path ACLOCAL_PATH "/usr/share/aclocal"
prepend-path PKG_CONFIG_PATH "/usr/lib/pkgconfig"
prepend-path PKG_CONFIG_PATH "/usr/share/pkgconfig"
setenv __GLX_VENDOR_LIBRARY_NAME "nvidia"
setenv __EGL_VENDOR_LIBRARY_FILENAMES "/usr/share/glvnd/egl_vendor.d/10_nvidia.json"It seems fine to me. |
|
@alalazo I cannot reproduce this behavior on the latest Are you using lmod for modules? The docker image uses that instead of TCL modules. EDIT: In particular, I cannot get Spack to add any environment variables to any generated modules. I've tried
|
|
@chuckatkins PTAL. I still need to rebase, but the necessary changes should be there. |
There was a problem hiding this comment.
This is great. I think the documentation is good. It's difficult to convey the details because it's a very complicated situation but I think this works well.
Just need to update a few places in the docs for glvnd-be-* -> libglvnd-be-*. I didn't note all the places here so just take a quick look through to make sure they've all be hit.
add default providers for glvnd-gl, glvnd-glx, and glvnd-egl
dba38cf to
eb10644
Compare
|
Rebased. |
|
It looks like this was good to go prior to rebasing but something got borked in the rebase. Rather than churning through the things that got left out, we're going to revert this and re-introduce the change set based on develop head. |
This reverts commit 573489d.
libglvnd-frontendfor exposinglibglvnd-backed GL implementations in a way that plays well with Spack's packaging model.openglandmesato includelibglvndsupport.paraviewto includeeglsupport.packagesconfiguration to includelibglvndentries forgl,glx, andeglvirtual packages.TODO:
libglvndis, why it's packaged the way it is, and how to set up an externalopenglormesathat was built forlibglvnd.