No hardware accelaration after switching to proprietary nvidia drivers

nvidia

(Maximilian Hartert) #1
System information, pacman configuration, and pacman log

System information

Linux asound-chakra 4.12.4-1-CHAKRA #1 SMP PREEMPT Tue Aug 1 18:19:44 CEST 2017 x86_64 GNU/Linux

Hardware information

cpu:                                                            
                       Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz, 4000 MHz
                       Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz, 4000 MHz
                       Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz, 4000 MHz
                       Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz, 4000 MHz
keyboard:
                       Holtek USB Keyboard
                       Valve Software Steam Controller
                       Razer DeathAdder Chroma
mouse:
                       Razer DeathAdder Chroma
monitor:
                       Generic Monitor
graphics card:
                       nVidia VGA compatible controller
sound:
                       nVidia Audio device
                       Intel Audio device
                       VIA Audio-gd
storage:
                       SATA controller
                       Intel SATA controller
                       SATA controller
network:
  enp0s25              Intel Ethernet controller
  enp4s0               Intel Ethernet controller
network interface:
  enp0s25              Ethernet network interface
  enp4s0               Ethernet network interface
  lo                   Loopback network interface
disk:
  /dev/sdb             Samsung SSD 850
  /dev/sdc             Corsair Neutron
  /dev/sda             WDC WD2003FZEX-0
partition:
  /dev/sdb1            Partition
  /dev/sdb2            Partition
  /dev/sdb3            Partition                                                                                                                                                                                 
  /dev/sdb4            Partition                                                                                                                                                                                 
  /dev/sdc1            Partition                                                                                                                                                                                 
  /dev/sdc2            Partition                                                                                                                                                                                 
  /dev/sdc3            Partition                                                                                                                                                                                 
  /dev/sdc4            Partition                                                                                                                                                                                 
  /dev/sda1            Partition                                                                                                                                                                                 
  /dev/sda2            Partition                                                                                                                                                                                 
cdrom:                                                                                                                                                                                                           
  /dev/sr0             TSSTcorp DVDWBD SH-B123L                                                                                                                                                                  
usb controller:                                                                                                                                                                                                  
                       Intel USB Controller                                                                                                                                                                      
                       Intel USB Controller                                                                                                                                                                      
                       Intel USB Controller                                                                                                                                                                      
bios:                                                                                                                                                                                                            
                       BIOS                                                                                                                                                                                      
bridge:                                                                                                                                                                                                          
                       Intel PCI bridge                                                                                                                                                                          
                       Intel Host bridge                                                                                                                                                                         
                       PCI bridge                                                                                                                                                                                
                       Intel 82801 PCI Bridge                                                                                                                                                                    
                       Intel PCI bridge                                                                                                                                                                          
                       Intel PCI bridge                                                                                                                                                                          
                       Intel PCI bridge                                                                                                                                                                          
                       Intel ISA bridge                                                                                                                                                                          
                       Intel PCI bridge                                                                                                                                                                          
hub:                                                                                                                                                                                                             
                       Linux 4.12.4-1-CHAKRA ehci_hcd EHCI Host Controller                                                                                                                                       
                       ASMedia AS2107                                                                                                                                                                            
                       Hub                                                                                                                                                                                       
                       Linux 4.12.4-1-CHAKRA xhci-hcd xHCI Host Controller                                                                                                                                       
                       Linux 4.12.4-1-CHAKRA ehci_hcd EHCI Host Controller                                                                                                                                       
                       ASMedia AS2107                                                                                                                                                                            
                       Hub                                                                                                                                                                                       
                       Linux 4.12.4-1-CHAKRA xhci-hcd xHCI Host Controller                                                                                                                                       
memory:                                                                                                                                                                                                          
                       Main Memory
bluetooth:
                       Cambridge Silicon Radio Bluetooth Dongle (HCI mode)
unknown:
                       FPU
                       DMA controller
                       PIC
                       Keyboard controller
                       Intel SMBus
                       Intel Communication controller
                       Serial controller
                       Microsoft Xbox 360 Wireless Receiver for Windows
                       Razer DeathAdder Chroma
                       Valve Software Steam Controller
                       Holtek USB Keyboard
                       VIA Audio-gd

/etc/pacman.conf

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
 
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
HoldPkg     = pacman glibc pacman-helpme
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto
 
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =
 
#NoUpgrade   =
#NoExtract   =
 
# Misc options (CheckSpace enabled by default for safety; color enabled by default 'cause it's fancy)
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
 
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Never
LocalFileSigLevel = Never
#RemoteFileSigLevel = Required
 
 
#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
 
#[testing]
#Include = /etc/pacman.d/mirrorlist
 
[lib32]
Include = /etc/pacman.d/mirrorlist
 
[core]
Include = /etc/pacman.d/mirrorlist
 
[desktop]
Include = /etc/pacman.d/mirrorlist
 
[gtk]
Include = /etc/pacman.d/mirrorlist
 
#[unstable]
#Include = /etc/pacman.d/mirrorlist
 
# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

/etc/pacman.d/mirrorlist

# mirrorlist generated by rankmirrors during chakra installation
# the original file was saved to /etc/pacman.d/mirrorlist.pacsave

Server = http://mirror.wh-stuttgart.net/chakra/$repo/x86_64
Server = http://www-ftp.lip6.fr/pub/linux/distributions/chakra/$repo/x86_64
Server = http://elgrande74.net/chakra/packages/$repo/x86_64

/var/log/pacman.log
pacman.d log

Hello,

I recently switched from nouveau to the proprietary drivers by nvidia. That was propbably the second thing I have done, after updating a fresh install. When I choose opengl as the compositor, my desktop get’s pretty slow. According to the fps counter by kwin, I have drops down to 20 fps, once I start do something (rezizing and moving windows for example).
With xrender it is pretty smooth and I have a solid 60fps. But of course I would prefer to go the opengl route. My graphics card is a gtx 1080, so it is the current generation of nvidia.

What I have done was removing the two unneeded packages (xf86-video-nouveau and mesa-libgl). Install the nvidia package (nvidia and nvidia-utils) and run nvidia-xconfig as root in console. Basically the installation that is described in this post: How do I switch to proprietary nvidia drivers?
If I remember correctly, there never was a package with that exact name: “mesa-libgl”, so I did not remove that and just run the command.
If I look at other installed packages with “mesa” in it’s name I do not see any conflicting, or rather only some that would conflict with nouveau.
The installed mesa packages are (according to octopi) “lib32-mesa”, “mesa” and “mesa-demos”.

When I open the nvidia settings manager it looks like the driver is active and in use. I am able to change my monitor setup and many other things. I know how empty this window looks when the driver is not active/working, this is not the case here.

What can I do to make hardware acceleration working with the proprietary drivers? Perhaps I have missed a critical step/package.
Or at least I think that hardware acceleration is not active. On kde neon I have solid 60 fps even with opengl as the compositor. I also would like to achieve that with chakra, since my intent is to make that my daily driver.

Thanks in advance and have a nice day.


(tom) #2

perhaps this package could solve your problem

core/nvidia-libgl 370.28-6
    NVIDIA drivers libraries symlinks

(Maximilian Hartert) #3

That conflicts with other installed packages which are important. It conflicts with “libglvnd” and “nvidia-utils”, those are needed by other packages which are needed by “nvidia”.
There is a “lib32-nvidia-libgl”, but the story is the same. That does conflict with “lib32-libglvnd” and “lib32-nvidia-utils”.

Considering that there can be conflicts if I choose to install a “wrong” package or when a wrong package is already installed, I do believe that packages are not the culprit. Otherwise I would have not been able to install “nvidia” to begin with, at least that is my assumption now.


(Chroot Doot ✝) #4

I assume you’ve tried both OpenGL 2 and 3.1.

Try installing the plasma-wayland-session package and running Plasma 5 under Wayland, the problem might be Xorg.

If the problem persists, or you would rather run in X11, switch back to Nouveau, reboot, then switch back proprietary drivers. Xorg + Nvidia drivers are a nightmare to get working sometimes, especially under a multi-monitor setup, but once it works you shouldn’t have any issues.


(tom) #5

make a bug report please

post must be at least 32 charakters blabla


(Chroot Doot ✝) #6

I’m checking how ArchLinux packages Nvidia, I do not see any issues involving nvidia-libgl.

Arch Nvidia requires:

  • nvidia-utils
  • libglvnd
  • nvidia-libgl

However, nvidia-libgl is provided by nvidia-utils, which is also the case for Chakra. On Arch, there is no separate nvidia-libgl package, libgl is either provided by libglvnd or legacy nvidia-utils.

At the moment on Chakra, nvidia-libgl is impossible to install, but is it necessary?

libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors. It allows multiple drivers from different vendors to coexist on the same filesystem, and determines which vendor to dispatch each API call to at runtime.

edit: I should also note libgl is provided by legacy Nvidia drivers for Chakra as well, which do not depend on libglvnd.


(Maximilian Hartert) #7

I am not shure what would happen, should I try to install plasma-wayland-session. Considering that nvidia does not support that.

Regarding the nvidia-libgl package, the version from the repository is outdated anyways. At least the version says 370.28-6 while the nvidia package is at 384.59-3. The version number should match, right?

For now I don’t know what nvidia-libgl does anyway. And considering that this seems to be included in “nvidia-utils”. I am not shure if this worthy of a bug report. I simply do not know how it is supposed to look like and if there even is a mistake to begin with.

One question: Is mesa needed? Cause according to the instruction I was supposed to remove mesa-libgl, but that is not in the repo. Well, Octopi shows no packages with that exact name. I do have other mesa packages installed (lib32-mesa, mesa and mesa-demos). When I try to install “mesa-libgl”, it simply wants to reinstall mesa. So mesa-libgl is a part of mesa. That looks like I might need to remove “mesa”.

Anyways I will switch between the open and closed driver and report back.

Have a nice day.


(Chroot Doot ✝) #8

Oh I’m sorry, I didn’t realize Wayland still isn’t officially supported with Nvidia drivers, so you can disregard that suggestion.

Also don’t worry about nvidia-libgl, it seems like an older package which has stopped being maintained in favour of libglvnd, and your observation about the version difference would suggest the time it stopped being maintained. (A little DuckDuckGo for the driver version shows October, 2016, so about a year ago)

If reinstalling doesn’t work, try testing legacy 340xx drivers. If there you do not have performance issues then it is definitely could be a problem with libglvnd, but if performance issues persist, then the problem lies elsewhere.


(brli) #9

Thanks for the heads up

The packages in core/nvidia-*libgl are leftovers after our shift to libglvnd, it should be fine with nvidia-utils installed, and that is the main reason why Arch and us put conflicts and provides nvidia-libgl to nvidia-utils package metadata.

I’ve just removed the nvidia-*libgl from the repository and lib32- counterpart in lib32 repository. So, after the mirror sync, this confusion should not be a problem anymore.

Have a nice day hacking Chakra. :slight_smile:


(Maximilian Hartert) #10

Hello,

sorry for being a little absent. I did not have that much time to fiddle with that problem.

For now, I did not have any success. But I only tried switching inbetween drivers and reinstalling.

I noted two things:
According to the xorg log, the nvidia driver is getting loaded.
When I open up the info hub by kde and navigate to the openGl entry. A device by “VMware” is listed there.

Have a nice day.


(Chroot Doot ✝) #11

Are you having problems with anything other than Kwin? I enabled the FPS counter, and my FPS drops to 30 when resizing windows, and briefly to 40 when moving windows (with Wobbly Windows active). However, everything else is good, I can watch videos at 60fps, play games at 60fps, etc.

I do not know of any Linux performance program other than GLXGears, but that’s pretty outdated. I guess try running something performance intensive, and see if there’s an issue.

Xorg is generally problematic, so “OpenGL + Kwin + Xorg = Low FPS when handling windows”, probably cannot be avoided. :thinking:

This is the very reason Wayland exists, to remove the middle-man (Xorg server). I wish it would adopt faster though…


(Maximilian Hartert) #12

Part of the problem is, that almost all animations and transitions by kwin are gone.

For example: Maximizing a window. Instead of expanding smoothly, it is just maximized with 1 step. When I switch to xrender, it expands smoothly in numerous steps. Or opening the start menu (I use the big application overview one). There is no transition either.
Not all are gone, like minimizing, but in general XRender is just so much smoother in my case.

Also video playback results in a lot of stuttering. Be it on desktop or youtube with firefox.

I do not have those problem with another kde distro and the proprietary nvidia drivers. Or when I switch to XRender as my compositor on chakra.

I can install some steam games and test those.


(Chroot Doot ✝) #13

Stuttering can be fixed by enabling triple buffering:

cat < /etc/profile.d/triple_buffer.sh <<EOF
  export KWIN_TRIPLE_BUFFER=1
EOF

I also enable full screen repaints in system settings. This works well for stopping any screen-tearing.

With XRender being smoother in general, that’s normal. OpenGL has been shoehorned into Xorg through extensions, the problem those extensions don’t always work. I do not know how XRender effects applications or games, I do know compositor effects (Wobbly Windows) only work with OpenGL.

EDIT: I’m being a little harsh on Xorg, while it does have problems, I should also mention the Nvidia driver itself is a contender to so many of Xorg’s issues; it’s only good quality is raw performance.


(Maximilian Hartert) #14

Afaik triple buffer does only prevent screen tearing, which is my least problem. Also that did not magically “activate” my graphics card in my case.

I just tried Cities Skylines, since I have played that on Linux before. The performance was absolutely horrible. So not only kde is affected by missing hardware acceleration.
This is what my kde infocenter is telling me, regarding opengl. I know that this is wrong:

Today I installed chakra on my computer at work. Before that I had an older kubuntu which still featured kde4.
I also switched to the proprietary nvidia drivers, the current version 387.22.1. Do mind that the installed card is an older generation (kepler). That system works perfectly fine. No performance problems whatsoever, even with opengl as my compositor. The installation or rather switch to the proprietary drivers worked flawlessly too.

My best guess now is, that somewhere in some package is an error, which affects the current nvidia generation (pascal).

Is there any chance, that reinstalling the package nvidia-utils after nvidia might break things? At work I noticed that nvidia-utils was automatically installed with nvidia. While at home I did miss that and therefore (always) reinstalled nvidia-utils unnecessarily.
Just to be sure, I have removed both packages and only installed nvidia without reinstalling nvidia-utils, to notice that nothing has changed.


(Chroot Doot ✝) #15

I think you might be right, the fact that you can run without nvidia-utils (which provides OpenGL support) could indicate there’s an issue with how non-legacy nvidia is being packaged.

Perhaps a conflict between nvidia-utils and mesa, which has been introduced due to the switch to libglvnd? One thing that stands out to me is both nvidia-utils and mesa provide opengl-driver.

Another possibility it that while mesa-libgl and nvidia-libgl shouldn’t be conflicting, maybe there’s an issue with mesa-libgl being loaded instead of nvidia-libgl (somehow).

In fact, I’ve recently had an issue with Nvidia drivers myself (not my post, but the same issue), and while this seems like a driver problem, it could be a problem with package conflicts.

Nvidia is such a hassle on Linux, why can’t they endorse the FLOSS driver like AMD did? :thinking:


(Maximilian Hartert) #16

I have “kind of” fixed it. I just reinstalled chakra and basically did the exact same steps I did on my computer at work.
In theory that should not make any difference, since I just left out the accidental/unnecessary reinstall of nvidia-utils and did not try to remove a package that is not even installed in the first place. Yet the performance problems are gone.
Now I have hardware acceleration with the proprietary nvidia drivers. Just not with a fix/way I would have prefered.
Nevertheless, that is not a huge deal. Nothing is lost and it is adjusted to my needs quickly.

Edit:

Here are the actual steps I have done to make it work, right after the first boot:

  1. Updated the system with “sudo pacman -Syu”
  2. Removed nouveau with “sudo pacman -R xf86-video-nouveau”
  3. Installed the nvidia drivers with “sudo pacman -S nvidia”
  4. Created a xorg conf with nvidia “sudo nvidia-xconfig”.
  5. Reboot.

So, no magic involved.


(system) closed #17

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.