Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 711942

Summary: x11-drivers/nvidia-drivers-390.132-r1 - add support for libglvnd
Product: Gentoo Linux Reporter: Nikolay Kichukov <hjckr>
Component: Current packagesAssignee: Jeroen Roovers (RETIRED) <jer>
Status: RESOLVED FIXED    
Severity: normal CC: arcctgx, iordanov, john.blbec, jstein, kroemmelbein, mike, NathanZachary, soap, thomas
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: A proposal of ebuild

Description Nikolay Kichukov 2020-03-09 10:34:21 UTC
Recent upgrades of mesa and xorg-server include defaulting to +libglvnd, which breaks upgrades for those who are stuck to nvidia-drivers v390 due to having obsolete video cards.

Can we have libglvnd enabled for nvidia-drivers-390.132-r1.ebuild? It was already enabled for:
nvidia-drivers-440.59.ebuild
nvidia-drivers-435.21-r1.ebuild

According to nvidia devtalk:
https://devtalk.nvidia.com/default/topic/915640/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/

libglvnd is supported in 361.xx and onwards.
Thanks!

Reproducible: Always

Steps to Reproduce:
1. Upgrade a system that has to use nvidia-drivers 390.xx series of the driver
2. Notice a block:
[blocks B      ] app-eselect/eselect-opengl ("app-eselect/eselect-opengl" is blocking x11-base/xorg-server-1.20.7, media-libs/mesa-19.3.4-r1)
[blocks B      ] x11-drivers/nvidia-drivers[-libglvnd(-)] ("x11-drivers/nvidia-drivers[-libglvnd(-)]" is hard blocking x11-base/xorg-server-1.20.7)

(xorg-server and mesa enabled libglvnd by default)
Comment 1 jorgicio 2020-03-13 15:00:37 UTC
(In reply to Nikolay Kichukov from comment #0)
> Recent upgrades of mesa and xorg-server include defaulting to +libglvnd,
> which breaks upgrades for those who are stuck to nvidia-drivers v390 due to
> having obsolete video cards.
> 
> Can we have libglvnd enabled for nvidia-drivers-390.132-r1.ebuild? It was
> already enabled for:
> nvidia-drivers-440.59.ebuild
> nvidia-drivers-435.21-r1.ebuild
> 
> According to nvidia devtalk:
> https://devtalk.nvidia.com/default/topic/915640/multiple-glx-client-
> libraries-in-the-nvidia-linux-driver-installer-package/
> 
> libglvnd is supported in 361.xx and onwards.
> Thanks!
> 
> Reproducible: Always
> 
> Steps to Reproduce:
> 1. Upgrade a system that has to use nvidia-drivers 390.xx series of the
> driver
> 2. Notice a block:
> [blocks B      ] app-eselect/eselect-opengl ("app-eselect/eselect-opengl" is
> blocking x11-base/xorg-server-1.20.7, media-libs/mesa-19.3.4-r1)
> [blocks B      ] x11-drivers/nvidia-drivers[-libglvnd(-)]
> ("x11-drivers/nvidia-drivers[-libglvnd(-)]" is hard blocking
> x11-base/xorg-server-1.20.7)
> 
> (xorg-server and mesa enabled libglvnd by default)

I confirm I'm having the same issue.

In the meanwhile, you could add the USE="-libglvnd" in your make.conf, at least until this issue is resolved.
Comment 2 jorgicio 2020-03-14 16:30:45 UTC
Created attachment 619032 [details]
A proposal of ebuild

I created this modified ebuild and tested it using a custom overlay. It provides the libglvnd support. Tried here and working.

If you're using Nvidia Optimus with Bumblebee and Primus, you may do some tweak to make it work.
Comment 3 Ionen Wolkens gentoo-dev 2020-03-15 03:22:33 UTC
For 340 (which can't support this), maybe some warning could be added instead? Then again 340 is no longer supported by nvidia and will likely end up too broken to be usable soon'ish (390 still has 2 years of support).

I would appreciate if something is done about these soon (430.64 too), users are doing multiple support requests everyday because they do not understand what is causing the blocker.
Comment 4 Larry the Git Cow gentoo-dev 2020-03-15 20:35:35 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e83944ea39f816e1aeb5fee5f3414b379e9594f4

commit e83944ea39f816e1aeb5fee5f3414b379e9594f4
Author:     Jeroen Roovers <jer@gentoo.org>
AuthorDate: 2020-03-15 20:33:33 +0000
Commit:     Jeroen Roovers <jer@gentoo.org>
CommitDate: 2020-03-15 20:35:29 +0000

    x11-drivers/nvidia-drivers: Update 390 branch
    
    - Add USE=libglvnd
    - Raise kernel version compatibility
    
    Package-Manager: Portage-2.3.94, Repoman-2.3.21
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=709930
    Closes: https://bugs.gentoo.org/show_bug.cgi?id=711942
    Signed-off-by: Jeroen Roovers <jer@gentoo.org>

 .../nvidia-drivers-390.132-r2.ebuild               | 583 +++++++++++++++++++++
 1 file changed, 583 insertions(+)
Comment 5 Nathan Zachary (RETIRED) gentoo-dev 2020-03-19 19:40:23 UTC
Though the ebuild was modified to add support for libglvnd, was it actually tested using an nvidia card and the 390.132 driver?  The driver builds properly, but the nvidia GLX module doesn't initialise, so GLX falls back to llvmpipe:

# glxinfo | grep -i render
direct rendering: Yes
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer,
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: llvmpipe (LLVM 9.0.1, 128 bits)
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_MESA_ycbcr_texture, GL_NV_conditional_render, GL_NV_depth_clamp,
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_fog_distance,
    GL_EXT_polygon_offset_clamp, GL_EXT_read_format_bgra, GL_EXT_render_snorm,
    GL_MESA_shader_integer_functions, GL_NV_conditional_render,
    GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, 

# glxinfo | grep -i opengl
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 9.0.1, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.0.1
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 20.0.1
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.0.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
# glxinfo | grep -i nvidia
# 

When starting X, I see the following error in the log:

[ 91296.570] (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
[ 91296.570] (EE) NVIDIA(0):     log file that the GLX module has been loaded in your X
[ 91296.570] (EE) NVIDIA(0):     server, and that the module is the NVIDIA GLX module.  If
[ 91296.570] (EE) NVIDIA(0):     you continue to encounter problems, Please try
[ 91296.570] (EE) NVIDIA(0):     reinstalling the NVIDIA driver. 

If there needs to be a separate bug for this problem, please let me know and I will file one accordingly.

Cheers,
Nathan Zachary
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2020-03-19 21:13:39 UTC
(In reply to Nathan Zachary from comment #5)
> Though the ebuild was modified to add support for libglvnd, was it actually
> tested using an nvidia card and the 390.132 driver?

Of course it was.

> If there needs to be a separate bug for this problem, please let me know and
> I will file one accordingly.

Then why did you reopen this one?
Comment 7 Nathan Zachary (RETIRED) gentoo-dev 2020-03-19 22:26:35 UTC
@Jeroen Roovers,

I apologise for reopening the bug.  I didn't know your preferred workflow.  Some developers prefer that bugs be reopened in order to audit any related changes, and some prefer new bugs.  I have opened bug 713546 for further tracking.  Thank you for taking the time to respond.
Comment 8 ColetteHenna 2021-07-13 03:37:52 UTC Comment hidden (spam)
Comment 9 KasperBoley 2021-07-13 09:18:02 UTC Comment hidden (spam)