web-dev-qa-db-fra.com

Optirun utilise Nvidia, Primusrun utilise une carte Intel

Je veux lancer des jeux sur Ubuntu avec Steam. J'ai installé Bumblebee et Primus ainsi que le pilote nVidia par défaut (304). J'ai lu que le pilote 310 améliore considérablement les performances, je voulais donc l'essayer. J'ai installé le nvidia-experimental-310 et le nvidia-settings-310 et j'ai configuré bumblebee.conf Au bas de l'écran, il indique que je dois éditer /usr/bin/primusrun pour utiliser nvidia-experimental-310

#!/bin/bash

# Readback-display synchronization method
# 0: no sync, 1: D lags behind one frame, 2: fully synced
# export PRIMUS_SYNC=${PRIMUS_SYNC:-0}

# Verbosity level
# 0: only errors, 1: warnings (default), 2: profiling
export PRIMUS_VERBOSE=${PRIMUS_VERBOSE:-2}

# Secondary display
# export PRIMUS_DISPLAY=${PRIMUS_DISPLAY:-:8}

# "Accelerating" libGL
# $LIB will be interpreted by the dynamic linker
export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/lib/nvidia-310-updates/libGL.so.1:/usr/lib32/nvidia-310-updates/libGL.so.1'}

# "Displaying" libGL
# export PRIMUS_libGLd=${PRIMUS_libGLd:-'/usr/lib/$LIB/mesa/libGL.so.1'}

# Directory containing primus libGL
PRIMUS_libGL=${PRIMUS_libGL:-/usr/lib/'$LIB'/primus}

# On some distributions, e.g. on Gentoo, libnvidia-tls.so is not available
# in default search paths.  Add its path manually after the primus library
case $PRIMUS_libGLa in
/usr/lib*/nvidia-310-updates*|'') # nvidia is used by default
 PRIMUS_libGL=${PRIMUS_libGL}:${PRIMUS_libGLa///libGL.so.1}
;; esac

# Mesa drivers need a few symbols to be visible
# export PRIMUS_LOAD_GLOBAL=${PRIMUS_LOAD_GLOBAL:-'libglapi.so.0'}

# Need functions from primus libGL to take precedence
export LD_LIBRARY_PATH=${PRIMUS_libGL}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

# And go!
exec "$@"

Mon système

Lenovo ideapad Y580
Ubuntu 13.04
Intel Core i7
nVidia GTX660M

Quand je lance optirun glxspheres j'obtiens cette sortie:

Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GTX 660M/PCIe/SSE2
150.527939 frames/sec - 167.989179 Mpixels/sec

Quand je lance vblank_mode = 0 optirun -b primus glxspheres je reçois

292.591142 frames/sec - 326.531714 Mpixels/sec

avec mon nvdia

Cependant, quand je lance primusrun glxspheres je reçois

Polygons in scene: 62464
Visual ID of window: 0x20
Xlib:  extension "NV-GLX" missing on display ":0".
Context is Indirect
OpenGL Renderer: Mesa DRI Intel(R) Ivybridge Mobile 
63.910723 frames/sec - 71.324367 Mpixels/sec

J'ai également essayé de définir vblank_mode = 0 optirun -b primus% command% dans Steam qui n'ouvre aucun jeu (TF2 & Trine 2). L'article dit que je devrais mettre à jour le primusrun pour qu'il utilise nvidia-experimental-310 mais que je l'ai remplacé par nvidia-310-updates, car ce sont les dossiers existants.

2
Dominic Bartl

Ok, donc je ne l’ai jamais réparée et je n’ai pas utilisé primusrun pour utiliser la carte Nvidia. Cependant, il n’est pas nécessaire d’utiliser le binaire du lanceur primusrun.

Je lance maintenant mes jeux sur Steam avec

optirun -b primus %command%

dans le LAUNCH OPTIONS

Si vous voulez utiliser Big Picture sur votre carte Nvidia, vous pouvez le faire: http://bartinger.at/run-Steam-big-picture-on-an-optimus-card/

optirun -b primus Steam -bigpicture

À partir de la ligne de commande

Edit: J'utilise le pilote nvidia-331. Mon config bourdon sur Pastebin . J'espère que ça aide quelqu'un.

4
Dominic Bartl