x11-drivers/nvidia-drivers should support libglvnd as an option: https://devtalk.nvidia.com/default/topic/925607/unix-graphics-announcements-and-news/linux-solaris-and-freebsd-driver-364-12-beta-/ --8<-- Changed the default OpenGL installation type to use the GLVND GLX client libraries rather than the legacy non-GLVND libraries. --8<-- https://devtalk.nvidia.com/default/topic/925605/linux/nvidia-364-12-release-vulkan-glvnd-drm-kms-and-eglstreams/ --8<-- Next, OpenGL Vendor-Neutral Dispatch (GLVND) is important for two major reasons: (1) It redefines the Linux OpenGL ABI in such a way that multiple OpenGL implementations can cleanly coexist on the file system: over time, this should put an end to the age-old Linux libGL.so collision problems. (2) It cleanly defines what symbols should be exported by each library, in order to use EGL with full OpenGL, rather than just EGL + OpenGL ES. Using EGL with full OpenGL on Linux isn't new, but the GLVND division of libOpenGL.so for OpenGL symbols, libGLX.so for GLX symbols, and libEGL.so for EGL symbols is nice. The sample code referenced below links against libEGL.so and libOpenGL.so. --8<-- https://devtalk.nvidia.com/default/topic/915640/unix-graphics-announcements-and-news/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/ --8<-- Selecting GLVND or non-GLVND at installation time In order to provide better compatibility with existing applications, the NVIDIA Linux driver installer package will be providing the option to install either a GLVND-based OpenGL driver stack, or a legacy, non-GLVND based stack, beginning with the upcoming 361.28 driver release. The default will be to install a non-GLVND OpenGL driver for the lifetime of the 361.xx series. A new "--glvnd-glx-client" command line option to nvidia-installer in the NVIDIA Linux .run installer package may be used to override the default installation type, and install a GLVND-based driver. In future releases where GLVND will be the default, "--no-glvnd-glx-client" may be used to force the installation of a non-GLVND-based driver. --8<--
Do you find that USE=compat doesn't already cover this?
(In reply to Jeroen Roovers from comment #1) > Do you find that USE=compat doesn't already cover this? It does. I'd like to propose to move all of the lib*_nvidia* libraries (not just vdpau) to /usr/lib, and leave the rest (which are essentially the libglvnd libraries) at /usr/lib/opengl/nvidia. Maybe they can be ignored in the future when a libglvnd ebuild is available as well (and nvidia stops packaging them) Also, the Vulkan entrypoint lives in libGLX_nvidia.so, which might not be found by the linker when nvidia isn't the active eselect opengl profile.
OK, USE=compat does it, then. For any other issues, please do file separate bug reports.