Que faire contre la baisse des performances du jeu en 12.04 en utilisant l'unité (3D)?

9

Je constate une énorme baisse des performances du jeu depuis ma nouvelle installation d'ubuntu 12.04

Mon PC est constitué d’un processeur Nvidia Geforce GTX 460, d’un processeur AMD Phenom II X4 965 et de 4 Go de RAM. J'utilise le pilote propriétaire nvidias.

Je joue principalement Heroes of Newerth en utilisant leur client Linux. Je le fais depuis Ubuntu 9.10 et je n'avais jamais rencontré de problèmes de performance lors de l'utilisation du pilote nvidia propriétaire. Mon fps a toujours été au maximum de 60.

Depuis que je lance Ubuntu 12.04, je gagne environ 30-45 images par seconde et l’expérience de jeu en général est très lente. Je sais que beaucoup de personnes ont des problèmes avec le pilote nvidias 295.40, qui est malheureusement installé par défaut dans Ubuntu 12.04. J'ai donc installé manuellement la dernière version stable 295.49, la dernière version bêta 302.07 et même l'ancienne version 295.33 utilisée dans Ubuntu 11.10 (où je n'ai jamais rencontré de problèmes de performances). C'était une perte de temps puisque je rencontrais les mêmes problèmes de performances avec les 4 versions de pilotes.

Lorsque j'utilise Unity 2D, mon fps revient à 60 et les performances globales du jeu sont excellentes. Donc, je n'ai que ces problèmes lors de l'exécution de la version d'ubuntu 12.04 de Unity.

J'ai également essayé de supprimer mes dossiers .config et .compiz-1 dans le répertoire de base, mais les performances des jeux sont toujours mauvaises quand on utilise l'unité.

Je ne sais pas quoi essayer ensuite ... Est-ce que quelqu'un sait comment je peux plus déboguer le problème? Peut-être que je peux fournir plus de données pour mieux analyser le problème? Peut-être essayer de manipuler certains paramètres de compilation?

Cette régression des performances est vraiment frustrante et je songe simplement à télécharger le client Windows de Heroes of Newerth et à revenir au dual boot car c'est tout simplement inacceptable.

Toute aide appréciée.

    
posée dong 11.05.2012 - 16:47
la source

4 réponses

3

Ce n’est pas une solution réelle, mais au moins cela pourrait être une solution utile (espérons-le) (hormis l’utilisation de Unity 2D).

Avant de commencer un jeu, ouvrez Nautilus (le gestionnaire de fichiers) et accédez à /usr/share/application . Ouvrez un terminal, tapez metacity --replace et appuyez sur Entrée. Ne paniquez pas, l'interface Unity disparaîtra, mais c'est mon intention. Lancez le jeu depuis le gestionnaire de fichiers (le lanceur du jeu doit se trouver dans le dossier que j'ai mentionné). Une fois que vous avez fini de jouer, tapez unity --replace dans la fenêtre du terminal et appuyez sur Entrée. Votre bureau est maintenant restauré à son état d'origine.
Cela devrait fonctionner car il est probable que Unity fonctionne en arrière-plan, ce qui cause des problèmes.

En outre, je signalerais ceci comme un bogue. C'est définitivement quelque chose qui doit être corrigé. Si vous soumettez un rapport de bogue, assurez-vous de laisser un lien ici afin que les autres personnes rencontrant ce problème puissent le marquer comme "les affectant", ce qui le corrigera plus tôt.

    
réponse donnée RobinJ 11.05.2012 - 17:13
la source
1

Vous pouvez toujours mettre à jour les pilotes de la 304.22 Nvidia Beta et voir ce qui se passe. J'avais de gros problèmes de performance avec Ubuntu 12.04 LTS et la version Nvidia 295.59 & amp; la version 302.07 semblait corriger quelques petites choses. La plupart des problèmes ont été résolus en mettant à jour le dernier pilote 304.22. Maintenant, mes performances GeForce sont finalement égales à Windows XP, mais il existe encore des problèmes mineurs dans quelques applications, mais la situation est vraiment améliorée de manière significative. Vous devez utiliser les derniers pilotes Nvidia à tout moment, même s'ils sont en version BETA, car il semble que les plus anciens stables ne soient pas testés par l'équipe de Nvidia sur les nouvelles mises à jour du noyau et d'Ubuntu. Le problème est que Nvidia doit ouvrir ses pilotes Open Source pour que les responsables d’Ubuntu et les développeurs Linux puissent tout synchroniser, mais cela ne devrait pas tarder à être résolu: - (

Vous pouvez les obtenir lien

Les pilotes 304.22 ont des tonnes de correctifs à grande échelle comme:

  • Ajout du support pour les GPU suivants:
    • GeForce GTX 680

      Quadro K1000M
      Quadro K2000M
  • Amélioration de la fonctionnalité de l'option Xconfiguration IncludeImplicitMetaModes:
  • Des MetaModes implicites seront ajoutés pour le périphérique d'affichage principal, même si plusieurs périphériques d'affichage sont utilisés lorsque X est initialisé.
  • Des MetaModes implicites seront ajoutés pour les résolutions courantes, même s'il n'y a pas de mode avec cette résolution dans le pool de modes du périphérique d'affichage.
  • Étendu la syntaxe de l'option de configuration IncludeImplicitMetaModes, par exemple pour contrôler Le périphérique d'affichage est utilisé pour la création de MetaModes implicites.
  • Voir la description de l'option de configuration de la page IncludeImplicitMetaModes X dans le fichier README pour plus de détails.

  • Modification de la gestion des requêtes RandR 1.0 / 1.1 RRGetScreenInfo et RRSetScreenConfig (par exemple, 'xrandr -q --q1' et 'xrandr --size ...' et 'xrandr --orientation ...') tels que ils fonctionnent sur MetaModes. C'était le comportement des versions 295.xx et antérieures des pilotes NVIDIA X, mais les versions 302.xx modifiaient le traitement de ces demandes RandR 1.0 / 1.1 pour qu'elles fonctionnent sur les modes d'une seule sortie RandR.
  • Avec les modifications ci-dessus pour les applications IncludeImplicitMetaModes et RandR 1.0 / 1.1, les applications plein écran (par exemple, les applications basées sur SDL, Wine) devraient avoir plus de résolutions à leur disposition, et devraient interagir mieux avec plusieurs configurations de moniteur.
  • pourrait provoquer l'affichage d'un écran noir ou la corruption des GPU G8x, G9x et GT2xx après le réveil.
  • Correction de plusieurs bogues pouvant entraîner le blocage de certains programmes OpenGL lors de l'appel à fork (3).
  • Correction d'un bug de nvidia-settings qui provoquait un formatage incorrect des résultats des requêtes ProbeDisplays effectuées avec l'option --display-device-string.
  • Amélioration de la réactivité des mises à jour des paramètres nvidia panneau de contrôle lorsque les affichages sont branchés à chaud.
  • Correction d'un bug qui causait l'affichage Ruption lors de la configuration de certaines transformations, en particulier lors du panoramique d'un affichage transformé.
  • Correction d'un bug qui provoquait la génération d'événements RandR supplémentaires lors du premier branchement d'un écran.
  • Les modèles X11 avec '@' ont été rejetés.
  • Prise en charge des périphériques DisplayPort 1.2, permettant de connecter plusieurs écrans à un seul connecteur DisplayPort sur une carte graphique.
  • Correction d'un bogue qui ralentissait la plupart des téléchargements de texture OpenGL lorsque le contexte était lié à une superposition RVB.
  • Correction d'un bug qui empêchait le passage audio via HDMI après le redémarrage du serveur X sur certains GPU MCP7x (IGP).
  • Mise à jour de l'option de configuration X "UseDisplayDevice" pour respecter la valeur "none" sur tout GPU.
  • Ajout du support pour DKMS dans nvidia-installer. L'installation du module noyau via DKMS permet de reconstruire automatiquement le module lors du passage à un noyau Linux différent. Voir le README et le texte d'aide de nvidia-installer ou l'option "--dkms".
  • Ajout des propriétés de sortie RandR _ConnectorLocation, ConnectorNumber, ConnectorType, EDID, _GUID et SignalFormat. Consultez le fichier README pour plus de détails sur ces propriétés.
  • Prise en charge étendue de Base Mosaic pour toutes les configurations G80 + SLI avec jusqu'à trois écrans.
  • Correction d'un bug qui provoquait l'échec de certains moniteurs à partir du mode de suspension DPMS lorsque plusieurs moniteurs DisplayPort étaient connectés à un GPU.
  • Suppression des contrôles pour les attributs XVideo de la page "Paramètres du serveur XVideo X" du panneau de configuration nvidia-settings. Les attributs XVideo peuvent être configurés dans les applications de lecteur XVideo ou via des utilitaires tels que xvattr.
  • Correction d'un bug qui entraînait le partage des paramètres de correction des couleurs entre tous les ports d'un adaptateur XVideo.
  • Suppression de la prise en charge des options de configuration X suivantes:
    • SecondMonitorHorizSync
      SecondMonitorVertRefresh
    Un contrôle similaire est disponible via les options de configuration NVIDIA HorizSync et VertRefresh X. Veuillez consulter le README du pilote NVIDIA pour plus de détails.
  • Correction d'un bogue qui empêchait NVIDIA 3D Vision Pro de fonctionner correctement lors de la commutation entre les serveurs X sur différents VT.
  • , la réflexion ou la transformation est appliquée à un périphérique d'affichage (via RandR ou la syntaxe MetaMode); le panoramique serait précédemment ignoré dans ce cas.
  •     
    réponse donnée user79034 27.07.2012 - 22:35
    la source
    1

    EDIT: X est maintenant verrouillable via xscreensaver

    salut! Essayez ceci, j'ai d'excellents résultats en l'utilisant, surtout pour les jeux! Comme il ne sera pas géré par Unity, vous pouvez également obtenir d'excellents résultats!

    J'ai créé ce script qui crée une nouvelle session X et exécute une commande ou ouvre un terminal pour que vous puissiez l'exécuter ici.

    openNewX.sh

    #!/bin/bash
    
    function FUNCisX1running {
      ps -A -o command |grep -v "grep" |grep -q -x "X :1"
    }
    
    useJWM=true
    useKbd=true
    while [[ ${1:0:2} == "--" ]]; do
      if [[ "" == "--no-wm" ]]; then #opt SKIP WINDOW MANAGER (run pure X alone)
        useJWM=false
        shift
      elif [[ "" == "--no-kbd" ]]; then #opt SKIP Keyboard setup
        useKbd=false
        shift
      elif [[ "" == "--isRunning" ]]; then #opt check if new X :1 is already running
        if FUNCisX1running; then
          exit 0
        else
          exit 1
        fi
      elif [[ "" == "--help" ]]; then #opt show help info
        echo "usage: options runCommand"
    
        # this sed only cleans lines that have extended options with "--" prefixed
        sedCleanHelpLine='s"\(.*\"\)\(--.*\)\".*#opt" "' #helpskip
        grep "#opt" 
    (class=XTerm) & (title=sudo X :1) & (name=xterm)
    
    |grep -v "#helpskip" |sed "$sedCleanHelpLine" exit 0 else #echoc -p "invalid option " echo "PROBLEM: invalid option " %pre% --help exit 1 fi done #echo "going to execute: [email protected]" #runCmd="" #this command must be simple, if need complex put on a script file and call it! runCmd="[email protected]" #this command must be simple, if need complex put on a script file and call it! #if ! echoc -q -t 2 "use JWM window [email protected]"; then # useJWM=false #fi # run in a thread, prevents I from ctrl+c here what breaks THIS X instace and locks keyb if ! FUNCisX1running; then xterm -e "\ echo \"INFO: hit CTRL+C to exit the other X session and close this window\";\ echo \"INFO: running in a thread (child proccess) to prevent ctrl+c from freezing this X session and the machine!\";\ echo \"INFO: hit ctrl+alt+f7 to get back to this X session (f7, f8 etc, may vary..)\";\ echo ;\ echo \"Going to execute on another X session: $runCmd\";\ sudo X :1"& fi #sudo chvt 8 # this line to force go to X :1 terminal # wait for X to start while ! FUNCisX1running; do sleep 1 done # run in a thread, prevents I from ctrl+c here what breaks THIS X instace and locks keyb if $useJWM; then if [[ ! -f "$HOME/.jwmrc" ]]; then echo '<?xml version="1.0"?><JWM><Key mask="4" key="L">exec:xscreensaver-command --lock</Key></JWM>' \ >$HOME/.jwmrc #if ! jwm -p; then # rm $HOME/.jwmrc # echo ".jwmrc is invalid" #else echo "see http://joewing.net/programs/jwm/config.shtml#keys" echo "with Super+L you can lock the screen now" #fi fi jwm -display :1& fi kbdSetup="echo \"SKIP: kbd setup\"" if $useKbd; then kbdSetup="setxkbmap -layout us" fi sleep 2 xscreensaver -display :1& # setxkbmap is good for games that have console access!; bash is to keep console open! # nothing #xterm -display :1& # dead keys #xterm -display :1 -e "setxkbmap -layout us -variant intl; bash"& # good for games! xterm -display :1 -e "$kbdSetup; bash -c \"$runCmd\"; bash"& #xterm -display :1 -e "$kbdSetup; bash -c \"[email protected]\"; bash"&

    aussi, ajoutez ceci à: compiz config settings manager - & gt; règles de fenêtre - & gt; non fermable windows:

    %pre%

    Cela vous empêchera de fermer ce terminal (utilisez ctrl + c pour fermer l'autre session X ainsi que le terminal), car si vous fermez "la fenêtre", cela bloquera votre session X en cours!

    Il a l'avantage que vous n'avez pas alt + entrer des problèmes en plein écran, également pas de problèmes en plein écran Alt + TAB; vous pouvez exécuter avec plus de stabilité n'importe quel jeu 3D, de Urban Terror (sous Linux) aux jeux exécutés avec Wine! Même certains navigateurs qui exécutent des jeux 3D comme Firefox avec Quake!

    Obs .: vous souhaiterez peut-être installer le package jwm, non requis, mais cela fera une différence si vous devez y faire de la gestion de fenêtres.

    PS: ça peut être amélioré bien sûr, mon plan est d'ajouter la configuration du clavier à une option, mais je le fais très lentement;) si quelqu'un améliore / nettoie, postez-moi pour pouvoir mettre à jour le script: )

        
    réponse donnée Aquarius Power 10.09.2012 - 22:01
    la source
    0

    Lorsque vous utilisez Unity 3D, avez-vous activé de nombreux effets 3D et similaires? (cube, animations de bureau, effets de menu, etc.) Ceux-ci peuvent réduire les performances, même sur une bonne machine.

    Il peut être utile de vérifier vos paramètres NVIDIA, il suffit de rechercher "NVIDIA" dans le tiret et vous le trouverez. Je sais que j'ai dû modifier les paramètres de nvidia un peu avant de ne pas avoir de décalage.

    Vérifiez les paramètres de votre jeu, modifiez-les un peu et voyez combien votre fps change.

    Assurez-vous de récupérer les dernières mises à jour pour Ubuntu, cela peut parfois résoudre des problèmes, bien que dans votre cas, je ne pense pas que cela pourrait aider.

        
    réponse donnée nisshh 11.05.2012 - 16:56
    la source

    Lire d'autres questions sur les étiquettes