Installation du pilote Nvidia avec Steam

Tags: #<Tag:0x00007f63f2ed3c28> #<Tag:0x00007f63f2ed3b10> #<Tag:0x00007f63f2ed39f8>

"Driver version: Intel i965 driver for Intel® Ivybridge Mobile "

A mon avis, tu n’utilises pas une carte Nvidia, et je n’ai pas compris ton autre sujet.

Ce serait peut-être plus clair avec un retour de :

lspci -k | grep -iA2 'vga'
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
	Subsystem: ASUSTeK Computer Inc. 3rd Gen Core processor Graphics Controller
	Kernel driver in use: i915

Répond sur l’autre sujet si possible, ce sera plus simple si d’autres personnes cherchent de l’aide à propos des drivers Nvidia sous Steam.

Bon jte fait un résumé vite fait de l’autre topique.
On a découvert qu’il fallait le pilote bumblebee pour ma carte Nvidia.
Le problème c’est que je n’ai pas d’augmentation de fps que ce soit avec optirun (donc avec les modules Nvidia) que sans.
Alors que lorsque je fait un glxspheres64 avec optirun, j’ai deux fois plus de fps que sans optirun… C’est là tout le problème…
J’ai essayé avec des jeux steam et des jeux non-steam comme xmoto mais rien y fait, que ce soit avec ou sans optirun je plafonne toujours au même nombre de fps…
Donc si tu pourrais m’aider, ce serait vraiment cool de ta part.

Merci d’avance
Cordialement.

Pas le temps maintenant, mais comme je te disais, je n’y connais pas grand-chose, et rien en Nvidia et rien en jeux.
Je ne comprends déjà pas comment tu sélectionnes une carte Intel ou Nvidia selon tes besoins pour tes essais.
Ton autre sujet est trop embrouillé pour que je m’y plonge de toute façon.
Désolé.

Non c’est la catastrophe avec cette ligne de commande, j’ai 1fps pour ne pas dire zéro. C’est injouable.

C’est que tu n’as pas compris l’objectif qui était de vérifier que tu avais bien une accélération matérielle fonctionnelle sans ce préfixe (différence avec/sans).
Par contre, 1FPS sans accélération matérielle, … ça voudrait dire sans CPU non plus, ce qui serait inquiétant.
Voilà ce que j’ai avec une Radeon RS780, donc ultra-basique:

glxgears
306 frames in 5.0 seconds = 61.009 FPS

LIBGL_ALWAYS_SOFTWARE=1 glxgears
1753 frames in 5.0 seconds = 350.516 FPS

Ton sujet avec deux cartes graphiques (Intel + Nvidia ??) serait à reprendre et démêler de A à Z, parce-qu’'à la longue de bricoler et tripatouiller dans tous les sens, je ne sais pas comment tu t’y retrouves.
Il y a sûrement un truc qui m’échappe totalement dans ta configuration matérielle précise et détaillée que je n’ai vu décrite nul-part.

Ah tu voulais que je lance cette ligne de commande avec glxgears, je n’avais pas compris. Moi je l’ai lancé avec Steam…
edit: Ba si, tu m’avais bien dit de lancer mon jeux avec ce préfixe. Ba j’ai 1fps en lançant csgo avec ce préfixe.

Voilà ce que ça donne avec glxgears:

glxgears
292 frames in 5.0 seconds = 58.293 FPS

LIBGL_ALWAYS_SOFTWARE=1 glxgears
3232 frames in 5.0 seconds = 646.250 FPS

Oui exactement

Si t’inquiète je m’y retrouve, tout est parfaitement installé comme dit dans les tuto trouvés sur le web.

Si, elle et bien décrite dans le topique, regarde encore.

Mais sinon:

lspci | grep -e VGA -e 3D -e Display
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev ff)

Tout fonctionne parfaitement avec le pilote Nvidia. glxspheres64 donne deux fois plus de fps avec optirun que sans, mais dans les jeux vidéo je ne vois aucune différence de fps, et c’est ça le gros problème du topique, c’est ça la question à mille dollars.

edit: J’ai retenté le coup avec optirun cette fois donc avec la commande:

LIBGL_ALWAYS_SOFTWARE=1 optirun -b primus steam

Et j’ai toujours 1fps

Salut @xddj

Je ne veux pas m’impliquer ; je suis hors-jeu : pas assez compétent.
J’ai juste trouvé un truc à Fps Locked At 30 Fps For Every Steam Game ;

Do u have NVIDIA GPU?
Did you perhaps apply VSync=Adaptive (Half Refresh) within NVIDIA Control Panel > Manage 3D Settings?

Get Nvidia Inspector and go to Global Settings. See what Frame Limiter says.

I had this on my laptop. Apparently one of the Energy Saving options when unplugged forces 30fps framelimit globally.

It was creepy and made me quite angry.

There are many Optimus users angry in fact.

Just set Framelimiter to Off.

Bonne chance

édition :

Il y a aussi un vieux truc (qui marche encore fin juin) à Fix for low FPS on Optimus Laptops

Salut r2mi,

Merci d’essayer de m’aider mais les liens que tu m’as donnés sont pour Windows. Nvidia Inspector n’existe pas sous Linux, idem pour la dll du deuxième lien.

@xddj

vainfo
libva info: VA-API version 1.2.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so

vdpauinfo
display: :0 screen: 0
Xlib: extension “NV-GLX” missing on display “:0”.

Donc 2 cartes graphiques, cas spécifique que je ne maîtrise pas, et encore moins des jeux que tu utilises pour tester.
Mon avis de néophyte est qu’il faut clarifier ce qui se passe lorsque “ton jeu” que tu utilises pour tester ne prend pas en compte l’accélération matérielle de la puce graphique.

Comment deux cartes graphiques pourraient appeler simultanément de la ressource CPU lorsque l’accélération matérielle n’est pas correctement prise en charge pour une raison X, Y, ou Z.

Exemple:
la commande vainfo semble s’adresser à ta carte Intel
la commande vdpauinfo semble d’adresser à ta carte Nvidia non correctement configurée, ou appelée.

● Une piste pour clarifier: tu ne pourrais pas dans un premier temps totalement désactiver la carte Intel (dans le BIOS), pour te concentrer sur Nvidia, et que ton système comprenne bien à qui “causer”, et clarifier le retour de vdpauinfo de ta carte Nvidia qui n’est pas correct ?

A part séparer les variables dans un premier temps, je ne sais pas démêler ce genre de cas.

Ma démarche de néophyte serait de comprendre:
1 - que se passe-t-il avec/sans accélération matérielle avec la puce Intel
2 - que se passe-t-il avec/sans accélération matérielle avec la puce Nvidia
3 - quelles sont les performances comparées Intel/Nividia en utilisant la même référence de mesure (glxgears par exemple).
4 - comment configurer tout ça avec les deux (Intel+Nvidia)à la fois, et que chaque application et le CPU s’y retrouve.

Tu as bien sûr certainement bien potassé le sujet, mais ta configuration est très spécifique me semble-t-il, et demande rigueur et méthodologie de test.

L’idéal serait de trouver un spécialiste du jeu sous linux, … avec ta config… soit sur ce forum ou un autre.

Rien qu’une RS780 basique, mais intégré à un CPU AMD, m’a fait comprendre avec un usage DVB-T sur VLC 3 qui fonctionnait moins bien qu’avec VLC 2, que ce genre de sujet est quand-même compliqué, et je ne comprenais pas pourquoi certains arrivaient à décoder matériellement du H264 avec leur “RS780” et moi pas, la raison étant qu’une puce dite “RS780” intégrée au processeur peut-être bridée, ce qui explique pourquoi j’avais de meilleures performances sans accélération matérielle qu’il fallait que je désactive.

A part te souhaiter bon courage dont tu ne manques pas, désolé de ne pas faire plus !

Ba la commande vdpauinfo ne fonctionne pas, que ce soit avec ou sans optirun ça me donne la même réponse:

display: :0   screen: 0
Xlib:  extension "NV-GLX" missing on display ":0".
Xlib:  extension "NV-GLX" missing on display ":0".
Error creating VDPAU device: 1

Je vais quand même aller faire un tour dans mon bios, on ne sais jamais…

C’est une manière d’interpréter les choses…
Soit c’est la commande qui ne “fonctionne pas”, ou alors elle t’explique qu’il y a peut-être quelque-chose de mal configuré.

apt show vdpauinfo

"VDPAU (« Video Decode and Presentation API for Unix ») – utilitaire vdpauinfo
VDPAU (« Video Decode and Presentation API for Unix ») est une bibliothèque
libre (libvdpau) et une interface de programmation conçues au départ par
NVIDIA pour les séries GeForce 8 et les GPU plus récents pour le Système de
fenêtrage X sur systèmes d’exploitation Unix (Linux, FreeBSD et Solaris).
L’API VDPAU permet aux programmes vidéo de décharger des portions du
processus de décodage vidéo et du post-traitement sur le GPU
.

Il est possible que vdpau n’a rien à voir avec ta carte / à vérifier.
Je te donne juste des pistes à creuser pour investigation.

► Au fait, en résumé, pour clarifier, à part afficher des FPS, quel est ton problème graphique ?
Es-tu sûr d’avoir un problème factuel ? (je dis ça pour vérifier car pas plongé dans ton historique).

root@localhost:~# apt show vdpauinfo
Package: dpauinfo
Version: 1.0-3
Priority: optional
Section: x11
Maintainer: Debian NVIDIA Maintainers <pkg-nvidia-devel@lists.alioth.debian.org>
Installed-Size: 47,1 kB
Depends: libc6 (>= 2.4), libgcc1 (>= 1:3.0), libstdc++6 (>= 5), libvdpau1 (>= 0.2), libx11-6
Homepage: https://cgit.freedesktop.org/~aplattner/vdpauinfo
Tag: hardware::video, role::program, scope::utility
Download-Size: 14,6 kB
APT-Manual-Installed: yes
APT-Sources: http://ftp.fr.debian.org/debian testing/main amd64 Packages
Description: VDPAU (« Video Decode and Presentation API for Unix ») – utilitaire vdpauinfo
 VDPAU (« Video Decode and Presentation API for Unix ») est une bibliothèque
 libre (libvdpau) et une interface de programmation conçues au départ par
 NVIDIA pour les séries GeForce 8 et les GPU plus récents pour le Système de
 fenêtrage X sur systèmes d'exploitation Unix (Linux, FreeBSD et Solaris).
 L'API VDPAU permet aux programmes vidéo de décharger des portions du
 processus de décodage vidéo et du post-traitement sur le GPU.
 .
 Ce paquet fournit l’utilitaire vdpauinfo.

Aucun, le seul problème c’est que je n’ai pas de différence de fps dans un jeux avec ou sans optirun. Donc avec ou sans le pilote Nvidia.

Tiens j’ai regardé dans mon bios, et pour la carte graphique, le seul truc que j’ai vu, c’est l’option dvmt qui était réglée sur 64mo, je l’ai mis sur 512 et j’ai l’impression d’avoir une petite montée de fps.

Aucun, le seul problème c’est que je n’ai pas de différence de fps dans un jeux avec ou sans optirun. Donc avec ou sans le pilote Nvidia.”

Donc, si finalement, tu n’as peut-être pas de problème, c’est plutôt une bonne nouvelle et que ma question n’était pas si mauvaise.

Ton interrogation serait-elle donc: pourquoi les pilotes fournis par Nvidia ne sont-ils pas meilleurs que ceux fournis par Debian ?
=> plutôt une bonne nouvelle qui voudrait dire qu’il ne faut pas trop se prendre la tête avec des pilotes externes ?

Maintenant, quand j’insiste sur la méthodologie, c’est qu’il faut bien réussir à formaliser “le problème” de manière factuelle, avant d’'y passer un mois ou plus.

Oui mais avec glxspheres64 j’ai deux fois plus de fps avec optirun que sans (regarde sur le topique concerné pour voir les stats). Voilà la différence. Et cette différence devrait également se voir dans les jeux. Et c’est là tout le problème, il n’y a aucune différence dans les jeux…

Bon, ton autre sujet est “passionnant”, si on peut dire, mais c’est un tripatouillage qui remonte à un mois, et j’y vois des énormités, genre essayer de lancer des applis graphiques en mode root…
Non franchement …

Quand je vois aussi ça…; “adduser $slack bumblebee”, je m’inquiète.
Nettoyer derrière, c’est pas cool.

Deux toutes petites questions:
1 - as-tu un fichier xorg.conf (voir dans /etc/X11/).
2 - que de ceci

id
dpkg -l | egrep 'nvidia|bumblebee'

Mon impression quand je vois ce que retourne vdpauinfo, est que tes jeux n’utilisent pas l’accélération matérielle de la carte graphique Nvidia, mais ça reste qu’une impression de néophyte en double cartes graphiques et Nvidia.

C’est pour ça que je voulais commencer à voir clairement les performances glx avec ou sans accel matérielle.
Il est possible que la carte Nvidia n’ait aucun accès aux ressources CPU, ce qui expliquerait le “1 FPS” que tu aurais sans accel matérielle, ce qui ne serait finalement pas anormal.

Maintenant, ce qu’il faudrait vérifier, c’est si ton jeu n’utilise pas exclusivement la carte Intel.
A part désactiver la carte Nvidia pour voir la différence, je ne vois pas.

Je sais qu’il ne faut pas le faire, c’était juste un oublie de ma part, j’étais logué en root, et j’ai laissé tel quel pour lancer la commande, sans faire exprès.

id
uid=0(root) gid=0(root) groupes=0(root),122(wireshark)

et id en user:

id
uid=1000(slack) gid=1000(slack) groupes=1000(slack),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),103(netdev),106(scanner),111(bluetooth),122(wireshark),997(bumblebee)
dpkg -l | egrep 'nvidia|bumblebee'
ii  bumblebee                              3.2.1-17                                amd64        NVIDIA Optimus support for Linux
ii  bumblebee-nvidia                       3.2.1-17                                amd64        NVIDIA Optimus support using the proprietary NVIDIA driver
ii  glx-alternative-nvidia                 0.8.7                                   amd64        allows the selection of NVIDIA as GLX provider
ii  libgl1-nvidia-glx:amd64                390.77-1                                amd64        NVIDIA binary OpenGL/GLX library (non-GLVND variant)
ii  libgl1-nvidia-glx:i386                 390.77-1                                i386         NVIDIA binary OpenGL/GLX library (non-GLVND variant)
ii  libnvidia-glcore:amd64                 390.77-1                                amd64        NVIDIA binary OpenGL/GLX core libraries
ii  libnvidia-glcore:i386                  390.77-1                                i386         NVIDIA binary OpenGL/GLX core libraries
ii  libnvidia-ml1:amd64                    390.77-1                                amd64        NVIDIA Management Library (NVML) runtime library
ii  nvidia-alternative                     390.77-1                                amd64        allows the selection of NVIDIA as GLX provider
ii  nvidia-installer-cleanup               20151021+8                              amd64        cleanup after driver installation with the nvidia-installer
ii  nvidia-kernel-common                   20151021+8                              amd64        NVIDIA binary kernel module support files
ii  nvidia-kernel-dkms                     390.77-1                                amd64        NVIDIA binary kernel module DKMS source
ii  nvidia-kernel-support                  390.77-1                                amd64        NVIDIA binary kernel module support files
ii  nvidia-legacy-check                    390.77-1                                amd64        check for NVIDIA GPUs requiring a legacy driver
ii  nvidia-modprobe                        390.25-1                                amd64        utility to load NVIDIA kernel modules and create device nodes
ii  nvidia-settings                        390.67-1                                amd64        tool for configuring the NVIDIA graphics driver
ii  nvidia-support                         20151021+8                              amd64        NVIDIA binary graphics driver support files
ii  nvidia-vdpau-driver:amd64              390.77-1                                amd64        Video Decode and Presentation API for Unix - NVIDIA driver
ii  xserver-xorg-video-nvidia              390.77-1                                amd64        NVIDIA binary Xorg driver

Oui mais c’est impossible de faire ça…

Oui mais avec bumblebee le fichier de configuration par défaut de xorg n’est plus utilisé. Maintenant il se trouve dans /etc/bumblebee/xorg.conf.nvidia et xorg.conf.nouveau et bumblebee.conf qui sélectionne le bon fichier, c’est à dire xorg.conf.nvidia

Voilà le fichier bumblebee.conf:

# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d
# Xorg binary to run
XorgBinary=/usr/lib/xorg/Xorg

## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus:/usr/lib/primus:/usr/lib32/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
#         bbswitch - new in BB 3, recommended if available
#       switcheroo - vga_switcheroo method, use at your own risk
#             none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/x86_64-linux-gnu/nvidia:/usr/lib/i386-linux-gnu/nvidia:/usr/lib/nvidia
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia/nvidia,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Il me semblait avoir lu une commande pour désactiver la NVidia, mais je ne retrouve pas.
Et ça dit quoi ?

systemctl status bumblebeed
slack@localhost:~$ systemctl status bumblebeed
● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor prese
   Active: active (running) since Sun 2018-08-26 13:13:58 CEST; 8h ago
 Main PID: 571 (bumblebeed)
    Tasks: 3 (limit: 4915)
   Memory: 46.2M
   CGroup: /system.slice/bumblebeed.service
           ├─ 571 /usr/sbin/bumblebeed
           └─1861 /usr/lib/xorg/Xorg :8 -config /etc/bumblebee/xorg.conf.nvidia 

Là on voit bien que la carte Nvidia s’active avec optirun:

slack@localhost:~$ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL core profile version string: 4.2 (Core Profile) Mesa 18.1.5
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 18.1.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.1.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
slack@localhost:~$ 
slack@localhost:~$ 
slack@localhost:~$ optirun glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 710M/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 390.77
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 390.77
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

Voilà le fichier xorg.conf.nvidia, si ça peut vous aider:

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
#   BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
    Option "UseDisplayDevice" "none"
EndSection

Et quand je lance le panneau de configuration Nvidia, ça fonctionne mais il y a quand même un message d’erreur:

slack@localhost:~$ optirun -b none nvidia-settings -c :8

ERROR: nvidia-settings could not find the registry key file. This file should
       have been installed along with this driver at either
       /usr/share/nvidia/nvidia-application-profiles-390.77-key-documentation
       or /usr/share/nvidia/nvidia-application-profiles-key-documentation. The
       application profiles will continue to work, but values cannot be
       prepopulated or validated, and will not be listed in the help text.
       Please see the README for possible values and descriptions.

Au faite, j’ai trouvé comment sélectionner un gpu, mais le prog ne fonctionne qu’avec Ubuntu:

edit: Ah non apparemment c’est faisable aussi d’une autre façon, mais je ne préfère pas me lancer dans ce genre de modifications de mon système:
http://pranavk.me/linux/disable-your-nvidia-card-in-linux/