Unity(3D)を使用している場合、12.04でのゲームパフォーマンスの低下に対して何をしますか?


9

ubuntu 12.04を新しくインストールしてから、ゲームのパフォーマンスが大幅に低下しました

私のPCは、Nvidia Geforce GTX 460、AMD Phenom II X4 965 CPU、4 GBのRAMで構成されており、nvidias独自のドライバーを使用しています。

私は主にLinuxクライアントを使用してHeroes of Newerthをプレイします。私はubuntu 9.10からこれを行い、独自のnvidiaドライバーを使用するときにパフォーマンスの問題を経験したことはありませんでした。私のfpsは常に60のvsyncフレームキャップに制限されていました。

私はubuntu 12.04を実行しているため、約30〜45 fpsになり、ゲームエクスペリエンスは一般的に非常に遅れています。私はnvidias 295.40ドライバーで問題を抱えている人がたくさんいることを知っています。これはubuntu 12.04にデフォルトで悲しいことにインストールされています。そこで、最新の安定した295.49、最新のベータ302.07、さらにubuntu 11.10で使用されている古いバージョン295.33(パフォーマンスに問題がなかった)を手動でインストールしました。4つのドライババージョンすべてで同じパフォーマンスの問題が発生していたので、これは時間の無駄でした。

Unity 2Dを使用すると、fpsは60に戻り、全体的なゲームパフォーマンスは素晴らしいです。そのため、ubuntu 12.04のバージョンのUnityを実行しているときにのみこれらの問題が発生します。

また、ホームディレクトリの.configフォルダーと.compiz-1フォルダーを削除しようとしましたが、Unityを使用すると、ゲームのパフォーマンスが混乱します。

次に何を試したらよいかわかりません...問題をさらにデバッグする方法を誰かが知っていますか?問題をよりよく分析するためにより多くのデータをどのように提供できるでしょうか?たぶん、いくつかのcompiz設定をいじってみませんか?

このパフォーマンスの低下は本当に苛立たしいものであり、私はHeroes of NewerthのWindowsクライアントをダウンロードしてデュアルブートに戻すことを考えています。

助けてくれてありがとう。

回答:


3

これは実際の解決策ではありませんが、少なくとも、(うまくいけば)便利な回避策になる可能性があります(Unity 2Dを単に使用することを除いて)。

ゲームを始める前に、Nautilus(ファイルマネージャ)を開いて、に移動し/usr/share/applicationます。端末を開きmetacity --replace、と入力して、Enterキーを押します。慌てないでください、Unityインターフェースは消えますが、これは私の意図です。ファイルマネージャーからゲームを起動します(ゲームのランチャーは前述のフォルダーにあるはずです)。ゲームのプレイが終了したらunity --replace、ターミナルウィンドウに入力してEnter キーを押します。デスクトップが元の状態に戻りました。
Unityがバックグラウンドで実行されて問題を引き起こしているため、これは機能するはずです。

また、これをバグとして報告します。間違いなく修正が必要なものです。バグレポートを送信する場合は、必ずここにリンクを残してください。これにより、この問題が発生している他の人が「影響あり」とマークできるため、すぐに修正されます。


お返事ありがとうございます。この回避策を試して報告します。確かに、それはきれいではありませんが、少なくともログアウトして、常にUnity 2dでログインするよりは良いでしょう...バグの報告を手伝ってくれませんか?リソースへのリンク、またはプロセスが説明されているものへのリンクは、すでにかなり役に立ちます。ありがとう。
2012年

あなたの回避策をRobinJに感謝します。それは本当にうまく機能しており、セッションを維持できるので、ログアウトしてUnity 2Dで再度ログインするよりも優れています。私はゲームランチャーでフォルダーを開き、ターミナルを開き、タイプmetacity --replace &してゲームを開始し、期待する素晴らしいパフォーマンスを得ました。入力が完了するunity --replaceと、入力するとすべてが正常に戻ります。結束に対するバグを提出し、それがもたらす結果を確認します。
ドン

@dong Ubuntuのドキュメントにバグを報告するためのガイドがあります:help.ubuntu.com/community/ReportingBugs
RobinJ

それ自体はUnityのバグではなく、Compizのバグです。ゲームは私のためにcompizでうまく動作したことがありません...
user55822

了解しました。少し遅れましたが、こちらがバグレポートです:unity bug-998141。これにも影響を受けている場合は、そのバグに影響があるとマークしてください。多分それはいくつかの注目を集めます。
ドン

1

いつでも304.22 Nvidia Betaドライバーに更新して、何が起こるかを確認できます。Ubuntu 12.04 LTSとNvidia 295.59バージョンに大きなパフォーマンスの問題があり、302.07バージョンはいくつかのマイナーな問題を修正したようです。ほとんどの問題は、最新の304.22ドライバーを更新することで解決されています。これで私のGeForceパフォーマンスは最終的にWindows XPと同等になりましたが、いくつかのアプリケーションからはまだ小さな問題がありますが、状況は本当に大幅に改善されています。ベータ版であっても、常に最新のNvidiaドライバーを使用する必要があります。古い安定したドライバーは、新しいカーネルとUbuntuのローリングアップデートでNvidiaのチームによってテストされておらず、予期しない問題や問題を引き起こしているようです。

それらはhttp://www.geforce.com/drivers/beta-legacyから入手できます。

304.22ドライバーには、次のような大規模な修正が多数含まれています。

  • 以下のGPUのサポートが追加されました。
    • GeForce GTX 680M
      Quadro K1000M
      Quadro K2000M
  • IncludeImplicitMetaModes Xconfigurationオプションの機能を拡張しました:
  • Xの初期化時に複数のディスプレイデバイスが使用されている場合でも、プライマリディスプレイデバイスに暗黙のMetaModeが追加されます。
  • ディスプレイデバイスのモードプールにその解像度のモードがない場合でも、一般的な解像度には暗黙のMetaModeが追加されます。
  • IncludeImplicitMetaModes構成オプションの構文を拡張しました。たとえば、
    暗黙的なMetaModeの作成に使用されるディスプレイデバイスを制御します。
  • 詳細については
    、READMEのIncludeImplicitMetaModes X構成オプションの説明を参照してください。

  • RandR 1.0 / 1.1リクエストの処理RRGetScreenInfoとRRSetScreenConfig(たとえば、 `xrandr -q --q1`と` xrandr --size ... `と` xrandr --orientation ... `)が処理されるように変更しましたMetaModes。これは、NVIDIA Xドライバーバージョン295.xx以前の動作でしたが、302.xxリリースでは、これらのRandR 1.0 / 1.1リクエストの処理が変更され、単一のRandR出力のモードで動作するようになりました。
  • IncludeImplicitMetaModesおよびRandR 1.0 / 1.1の処理に対する上記の変更により、フルスクリーンアプリケーション(SDLベースのアプリケーション、Wineなど)は、より多くの解像度を利用できるようになり、複数のモニター構成とより適切に相互作用するはずです。
  • サスペンドから復帰した後、G8x、G9x、およびGT2xx GPUに黒い画面または破損が表示される可能性があるバグを修正しました。
  • fork(3)を呼び出すときに一部のOpenGLプログラムがハングする可能性があるいくつかのバグを修正しました。
  • --display-device-stringオプションを使用して作成されたProbeDisplaysクエリの結果が正しくフォーマットされない原因となったnvidia-settingsバグを修正しました。
  • ディスプレイがホットプラグされているときのnvidia-settingsコントロールパネルの更新の応答性を改善しました。
  • 一部の変換を設定するときに、特に変換されたディスプレイをパンするときに、ディスプレイが破損するバグを修正しました。
  • ディスプレイが初めてホットプラグされたときに、追加のRandRイベントが生成されるバグを修正しました。
  • 名前に「@」が含まれるX11モードラインが拒否されるバグを修正しました。
  • DisplayPort 1.2ブランチデバイスのサポートが追加されました。これにより、グラフィックボード上の単一のDisplayPortコネクタに複数のディスプレイを接続できます。
  • コンテキストがRGBオーバーレイドローアブルへのレンダリングにバインドされている場合、ほとんどのOpenGLテクスチャアップロードが遅くなるバグを修正しました。
  • 一部のMCP7x(IGP)GPUでXサーバーを再起動すると、HDMI経由のオーディオが機能しなくなるバグを修正しました。
  • X構成オプション "UseDisplayDevice"を更新して、任意のGPUで値 "none"を受け入れます。
  • nvidia-installerにDKMSのサポートを追加しました。DKMSを介してカーネルモジュールをインストールすると、別のLinuxカーネルに変更したときに、モジュールを自動的に再構築できます。READMEとnvidia-installerのヘルプテキストまたは「--dkms」オプションを参照してください。
  • RandR出力プロパティ_ConnectorLocation、ConnectorNumber、ConnectorType、EDID、_GUID、SignalFormatを追加しました。これらのプロパティの詳細については、READMEを参照してください。
  • 最大3つのディスプレイを備えたすべてのG80 + SLI構成へのベースモザイクの拡張サポート。
  • 複数のDisplayPortモニターが1つのGPUに接続されている場合に、一部のモニターがDPMSサスペンドモードからの復帰に失敗するバグを修正しました。
  • nvidia-settingsコントロールパネルの[XサーバーXVideo設定]ページからXVideo属性のコントロールを削除しました。XVideo属性は、XVideoプレーヤーアプリケーションで、またはxvattrなどのユーティリティを介して構成できます。
  • XVideoアダプターのすべてのポートで色補正設定を共有するバグを修正しました。
  • 次のX構成オプションのサポートを削除しました。
    • SecondMonitorHorizSync
      SecondMonitorVertRefresh
    同様の制御は、NVIDIA HorizSyncおよびVertRefresh X構成オプションを通じて利用できます。詳細については、NVIDIAドライバーのREADMEを参照してください。
  • 異なるVTでXサーバーを切り替えるときにNVIDIA 3D Vision Proが正しく機能しないバグを修正しました。
  • (RandRまたはMetaMode構文のいずれかを介して)回転、反射、または変換がディスプレイデバイスに適用されるときのデスクトップパンのサポートが追加されました。その場合、以前はパンは無視されていました。

  • 真剣に新しいドライバーを試してみてください、ついにWindowsとほぼ同じパフォーマンスが得られます...

    私は通常、自分の作業システムでまだベータ段階にあるものを使用することを非常に嫌います。そうは言っても、最新のベータドライバーによって、デフォルトの正確な12.04独自のnvidiaドライバーで発生していた多くの問題が修正されたことを確認できます。それはすべてが好転したようなものです-いわゆる「安定した」ドライバーは私にとってベータ体験のようなものでした、更新されたドライバーはさらに悪化しました(たとえば、サスペンドから復帰しない)、最新のベータドライバー(304.30)は問題なく動作していますはるか。この有益で手の込んだ答えを私から+1してください!ありがとうございました!
    FuzzyQ 2012

    304.30ドライバーは、ついに私のシステムをWindows XPおよびWindows 7 Nvidiaのパフォーマンスレベルとほぼ同じレベルにしました。WindowsとLinuxの両方でNvidiaを使用する場合、常に最新の状態を維持し、常にドライバーから直接ドライバーを入手して最高のエクスペリエンスを得る必要があります...修正してくれてうれしい...

    1

    編集:Xはxscreensaverを介してロック可能になりました

    こんにちは!これを試して、私はそれを使用して、主にゲームのために素晴らしい結果を得ています!Unityで管理されないため、すばらしい結果が得られる場合もあります。

    新しいXセッションを作成し、コマンドを実行するか、ターミナルを開いてそこで実行できるようにするスクリプトを作成しました。

    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 [[ "$1" == "--no-wm" ]]; then #opt SKIP WINDOW MANAGER (run pure X alone)
        useJWM=false
        shift
      elif [[ "$1" == "--no-kbd" ]]; then #opt SKIP Keyboard setup
        useKbd=false
        shift
      elif [[ "$1" == "--isRunning" ]]; then #opt check if new X :1 is already running
        if FUNCisX1running; then
          exit 0
        else
          exit 1
        fi
      elif [[ "$1" == "--help" ]]; then #opt show help info
        echo "usage: options runCommand"
    
        # this sed only cleans lines that have extended options with "--" prefixed
        sedCleanHelpLine='s"\(.*\"\)\(--.*\)\".*#opt" \2"' #helpskip
        grep "#opt" $0 |grep -v "#helpskip" |sed "$sedCleanHelpLine"
    
        exit 0
      else
        #echoc -p "invalid option $1"
        echo "PROBLEM: invalid option $1"
        $0 --help
        exit 1
      fi
    done
    #echo "going to execute: $@"
    #runCmd="$1" #this command must be simple, if need complex put on a script file and call it!
    runCmd="$@" #this command must be simple, if need complex put on a script file and call it!
    
    #if ! echoc -q -t 2 "use JWM window manager@Dy"; 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 \"$@\"; bash"&
    

    また、これを追加します:compiz構成設定マネージャー->ウィンドウルール->閉じられないウィンドウ:

    (class=XTerm) & (title=sudo X :1) & (name=xterm)
    

    「ウィンドウ」を閉じると現在のXセッションがフリーズするため、これによりそのターミナルを閉じることができなくなります(ctrl + cを使用して他のXセッションとターミナルも閉じます)。

    Alt + Enter全画面の問題がなく、Alt + Tab全画面の問題がないという利点があります。Urban Terror(Linuxネイティブ)からWineで実行されるゲームまで、あらゆる3Dゲームをより安定して実行できます!Quakeを搭載したFirefoxなどの3Dゲームを実行する一部のブラウザでも!

    Obs .:不要なjwmパッケージをインストールしたいかもしれませんが、そこでウィンドウ管理を行う必要がある場合は違いがあります。

    PS .:もちろんそれは改善できる、私の計画はキーボード設定をオプションに追加することですが、私はそれを非常にゆっくりと行います;)、誰かがそれを改善/クリーンアップする場合、投稿して私のスクリプトを更新できるようにします:)


    0

    Unity 3Dを使用する場合、多くの3D効果などを有効にしていますか?(キューブ、デスクトップアニメーション、メニュー効果など)これらは、優れたマシンであっても、パフォーマンスを低下させる可能性があります。

    それはあなたのnvidia設定をチェックする価値があるかもしれません、ただダッシュで「nvidia」を検索してください、そしてあなたはそれを見つけます。ラグが発生しないようにするには、nvidiaの設定をかなり微調整する必要があったことを知っています。

    ゲーム内の設定を確認し、少し変更して、FPSがどの程度変化するかを確認します。

    Ubuntuの最新のアップデートを必ず入手してください。これで問題が解決する場合がありますが、あなたの場合は役に立たないと思います。


    お返事ありがとうございます。私はこのインストールでcompiz設定を変更しなかったので(ccsmもインストールしていません)、セットアップに関するすべてが、新規インストール後に取得する標準のUnity 3Dです。キューブも、燃える窓も、何もありません。ゲーム内の設定について:Heroes of NewerthのUbuntu 11.10(およびそれ以前)では、現在とまったく同じ設定ですべてがスムーズに実行されていました。私の目標は、これを再び達成することです。ご想像のとおり、ubuntuの最新の更新プログラムはすべてインストール済みです(公式リポジトリから。他のPPAは追加されていません)。
    ドン

    nvidiaの設定で正確に何を変更できますか?パフォーマンスを改善するために何を変更できるかわかりません。
    ドン

    VSYNC、AAとAFと様々な他のもののための設定は、またの一つ下のグラフィックス性能のスライダーがありあります設定エリアの、その@dongを見て価値があるかもしれない
    nisshh
    弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
    Licensed under cc by-sa 3.0 with attribution required.