Що робити проти падіння продуктивності гри в 12.04 при використанні єдності (3D)?


9

Я відчуваю велике падіння продуктивності гри з моєї нової установки ubuntu 12.04

Мій ПК складається з процесора Nvidia Geforce GTX 460, процесора AMD Phenom II X4 965 та 4 ГБ оперативної пам’яті, і я використовую фірмовий драйвер nvidias.

В основному я граю в Heroes of Newerth, використовуючи їх клієнт Linux. Я роблю це з моменту ubuntu 9.10, і я ніколи не відчував проблем із продуктивністю при використанні власного драйвера nvidia. Мій кадр в секунду завжди змішувався з обмеженням кадру vsync 60.

Оскільки я запускаю ubuntu 12.04, я отримую близько 30-45 кадрів в секунду, а досвід гри в цілому дуже млявий. Я знаю, що дуже багато людей мають проблеми з драйвером nvidias 295.40, який, на жаль, встановлений за замовчуванням в ubuntu 12.04. Тому я вручну встановив останню стабільну версію 295.49, останню бета-версію 302.07 та навіть старішу версію 295.33, що використовується в ubuntu 11.10 (де у мене ніколи не було проблем із продуктивністю). Це було марною витратою часу, оскільки у мене виникли однакові проблеми з роботою з усіма 4 версіями драйверів.

Коли я використовую Unity 2D, мій кадр в секунду повернувся до 60, а загальна продуктивність гри чудова. Тому у мене є лише ті проблеми, коли запускається версія Unity версії ubuntu 12.04.

Я також намагався видалити свої папки .config та .compiz-1 з домашнього каталогу, але все-таки продуктивність гри - це безлад при використанні єдності.

Я не знаю, що спробувати далі ... Хтось знає, як я можу подальше налагодження проблеми? Можливо, як я можу надати більше даних для кращого аналізу проблеми? Можливо, спробуйте познайомитися з деякими налаштуваннями compiz?

Ця регресія продуктивності насправді засмучує, і я думаю про завантаження клієнта Windows Heroes of Newerth і повернення до подвійного завантаження, оскільки це просто неприпустимо.

Будь-яка допомога вдячна.

Відповіді:


3

Це не справжнє рішення, але, принаймні, це може бути (сподіваємось) корисним рішенням (крім простого використання Unity 2D).

Перш ніж розпочати гру, відкрийте Nautilus (файловий менеджер) та перейдіть до /usr/share/application. Відкрийте термінал, наберіть metacity --replaceі натисніть клавішу Enter. Не панікуйте, інтерфейс Unity зникне, але це мій намір. Запустіть гру з файлового менеджера (пускова програма для гри повинна бути в папці, яку я згадав). Закінчивши гру, наберіть unity --replaceу вікні термінала і натисніть клавішу Enter. Тепер ваш робочий стіл відновлено таким, яким він був.
Це має працювати, оскільки, мабуть, Unity працює у фоновому режимі, що спричиняє проблеми.

Також я повідомив би про це як про помилку. Це, безумовно, щось, що потрібно виправити. Якщо ви надсилаєте звіт про помилку, не забудьте залишити посилання, щоб інші люди, які стикаються з цією проблемою, могли позначати її як "зачіпаючу їх", яка швидше усуне її.


Дякую за вашу відповідь Я спробую це вирішити і звітувати. Впевнений, що це не дуже, але принаймні краще, ніж виходити та повертатися з одиницею 2d весь час ... Чи можете ви допомогти мені в повідомленні про помилку? Посилання на ресурс або щось там, де пояснюється процес, вже дуже допоможе. Дякую.
дон

Дякую RobinJ за ваше вирішення. Це працює дуже добре, і це краще, ніж виходити та повертатися з єдністю 2d, тому що я можу тримати свою сесію. Я відкрив папку із запуском ігор, відкрив термінал, набрав metacity --replace &розпочату гру та отримаю чудову ефективність, яку я очікую отримати. Коли я закінчую, я набираю, unity --replaceі все повертається до норми. Зараз я подам помилку на єдність і побачу, що це приносить.
дон

@dong Довідка щодо повідомлення про помилки в документації на Ubuntu: help.ubuntu.com/community/ReportingBugs
RobinJ

Це не помилка Unity як така, а Compiz. Ігри ніколи не працювали добре з compiz для мене ...
user55822

Добре, трохи пізно, але ось повідомлення про помилки: помилка єдності-998141 . Будь ласка, не забудьте позначити помилку, яка впливає на вас, якщо на вас також це впливає. Можливо, це привертає певну увагу.
дон

1

Ви завжди можете оновити до 304.22 драйверів Nvidia Beta і побачити, що відбувається. У мене виникли величезні проблеми з продуктивністю з Ubuntu 12.04 LTS та версією Nvidia 295.59, а версія 302.07, здавалося, виправляла деякі незначні речі. Більшість проблем було вирішено оновленням останнього драйвера 304.22. Тепер моя продуктивність GeForce нарешті дорівнює Windows XP, але все ще є незначні проблеми у кількох додатках, але ситуація справді значно покращилася. Ви повинні користуватися останніми драйверами Nvidia, навіть якщо вони є в BETA, оскільки, здається, що старіші стабільні не перевіряються командою Nvidia на новіших оновленнях Kernel та Ubuntu, які викликають несподівані проблеми та проблеми.

Ви можете отримати їх http://www.geforce.com/drivers/beta-legacy

У 304,22 драйверів є багато виправлень масштабного типу:

  • Додана підтримка наступних графічних процесорів:
    • GeForce GTX
      680M
      Quadro K1000M Quadro K2000M
  • Покращена функціональність параметра "ВключитиImplicitMetaModes Xconfiguration":
  • Неявні метамоделі будуть додані для основного пристрою відображення, навіть якщо декілька пристроїв відображення використовуються при ініціалізації X.
  • Неявні метамоделі будуть додані для загальних дозволів, навіть якщо в пулі режимів пристрою відображення немає режиму з такою роздільною здатністю.
  • Розширений синтаксис опції конфігурації IncludeImplicitMetaModes, наприклад, для управління тим, який пристрій відображення
    використовується для створення неявних метамоделів.
  • Детальні відомості див. В описі
    параметра конфігурації IncludeImplicitMetaModes X у програмі README.

  • Змінено обробку запитів RandR 1.0 / 1.1 RRGetScreenInfo і RRSetScreenConfig (наприклад, `xrandr -q --q1` і` xrandr --size ... "і` xrandr --орієнтація ... ') таким чином, щоб вони працювали на MetaModes. Така поведінка була у версіях драйверів NVIDIA X 295.xx та більш ранніх версій, але випуски 302.xx змінили обробку цих запитів RandR 1.0 / 1.1 для роботи в режимах одного виходу RandR.
  • З урахуванням вищезазначених змін для обробки IncludeImplicitMetaModes і RandR 1.0 / 1.1, додатки на повноекранному екрані (наприклад, додатки на основі SDL, Wine) повинні мати більше доступних дозволів і краще взаємодіяти з кількома конфігураціями монітора.
  • Виправлена ​​помилка, яка може викликати графічні процесори G8x, G9x та GT2xx для відображення чорного екрана або пошкодження після пробудження з призупинення.
  • Виправлено кілька помилок, які можуть викликати зависання деяких програм OpenGL при виклику вилки (3).
  • Виправлена ​​помилка налаштувань nvidia, яка спричинила неправильне форматування результатів запитів ProbeDisplays, виконаних за допомогою параметра --display-device-string.
  • Покращено чутливість оновлень до панелі управління nvidia-налаштування, коли дисплеї підключаються до гарячої розетки.
  • Виправлена ​​помилка, яка спричинила пошкодження дисплея під час встановлення деяких перетворень, особливо при панорамуванні перетвореного дисплея.
  • Виправлена ​​помилка, яка спричинила появу додаткових подій RandR під час першого підключення дисплея.
  • Виправлена ​​помилка, яка спричинила відхилення моделей X11 із зазначенням символу "@".
  • Додана підтримка філійних пристроїв DisplayPort 1.2, які дозволяють підключити кілька дисплеїв до одного роз'єму DisplayPort на графічній платі.
  • Виправлена ​​помилка, яка спричиняла повільність завантаження більшості текстур OpenGL, коли контекст прив'язував рендеринг на RGB-накладення.
  • Виправлена ​​помилка, через яку звук через HDMI не працював після перезавантаження X-сервера на деяких графічних процесорах MCP7x (IGP).
  • Оновлено параметр конфігурації X "UseDisplayDevice", щоб відзначити значення "none" на будь-якому GPU.
  • Додана підтримка DKMS у nvidia-інсталяторі. Встановлення модуля ядра через DKMS дозволяє автоматично перебудовувати модуль при переході на інше ядро ​​Linux. Див. README та довідковий текст установки nvidia-інсталятора або параметр "--dkms".
  • Додані властивості виводу RandR _ConnectorLocation, ConnectorNumber, ConnectorType, EDID, _GUID та SignalFormat. Докладніше про ці властивості див. У розділі README.
  • Розширена підтримка базової мозаїки для всіх конфігурацій G80 + SLI з до трьох дисплеями.
  • Виправлена ​​помилка, через яку деякі монітори не змогли прокинутися з режиму призупинення DPMS, коли кілька моніторів DisplayPort були приєднані до одного графічного процесора.
  • Видалено елементи керування для атрибутів XVideo зі сторінки "Налаштування X-сервера XVideo" на панелі керування nvidia-settings. Атрибути XVideo можна налаштувати в програмах програвача XVideo або через утиліти, такі як xvattr.
  • Виправлена ​​помилка, через яку всі порти адаптера XVideo мали спільний доступ до налаштувань корекції кольорів.
  • Видалена підтримка наступних параметрів конфігурації X:
    • SecondMonitorHorizSync
      SecondMonitorVertRefresh
    Подібне управління доступне через параметри конфігурації NVIDIA HorizSync та VertRefresh X. Для отримання детальної інформації див. Драйвер NVIDIA README.
  • Виправлена ​​помилка, яка заважала NVIDIA 3D Vision Pro працювати належним чином при переключенні між X-серверами на різних VT.
  • Додана підтримка панорамування на робочому столі, коли обертання, відображення або перетворення застосовуються до пристрою відображення (через RandR або через синтаксис MetaMode); панірування раніше було б проігноровано в такому випадку.

  • Серйозно ви повинні спробувати нові драйвери, нарешті отримали продуктивність майже такою, якою вона є в Windows ...

    Я зазвичай не люблять використовувати що - небудь , що все ще перебуває в стадії бета - тестування на моїй робочій системі дуже багато. Зважаючи на це, я можу стверджувати, що останні бета-драйвери виправили чимало проблем, які у мене виникли із точними 12.04 власними драйверами nvidia. Це все одно, що все розгорнулося - так звані "стабільні" драйвери були мені як бета-досвід, оновлені драйвери були ще гіршими (наприклад, не прокидайтеся від призупинення), а останні бета-драйвери (304.30) працюють бездоганно, тому далеко. +1 від мене за цю корисну і ретельну відповідь! Дуже дякую!
    FuzzyQ

    Драйвери 304,30 нарешті поставили мою систему на майже тісний рівень з рівнем продуктивності Windows XP та Windows 7 Nvidia. З Nvidia і в Windows, і в Linux потрібно постійно триматись на межі, що здається, і завжди отримувати драйвери безпосередньо від них для найкращого досвіду ... рада, що це виправлено для вас ...

    1

    EDIT: X тепер можна заблокувати через xscreensaver

    Привіт! спробуйте це, я маю чудові результати, використовуючи його, в основному для ігор! Оскільки Unity не зможе керувати 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 config settings manager -> window window -> windows, що не закриваються:

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

    Це не дасть вам закрити цей термінал (використовуйте ctrl + c, щоб закрити інший X сеанс, а також термінал), тому що якщо ви закриєте "вікно", воно заморозить ваш поточний X сеанс!

    Перевагою є те, що у вас немає альт + введення проблем з повноекранним режимом, також немає проблем з повноекранним режимом Alt + TAB; ви можете запустити з більшою стабільністю будь-яку 3D-гру, від Urban Terror (Linux Linux) до ігор, що працюють з Wine! Навіть деякі браузери, які запускають 3D-ігри, такі як Firefox та Quake!

    Порада .: ви можете встановити пакет jwm, не обов'язковий, але це змінить значення, якщо вам потрібно виконати будь-яке управління вікнами там.

    PS: це, звичайно, можна покращити, мій план - додати налаштування клавіатури до опції, але я це роблю дуже повільно;), якщо хтось покращить / очистить її, опублікуйте, щоб я міг оновити свій скрипт :)


    0

    Чи використовуєте Ви Unity 3D, чи багато 3D-ефектів тощо? (кубик, анімація на робочому столі, ефекти меню та ін.) Це може знизити продуктивність навіть на хорошій машині.

    Можливо, варто перевірити ваші налаштування nvidia, просто знайдіть "nvidia" на тире, і ви знайдете його. Я знаю, що мені довелося трохи налаштувати налаштування nvidia, перш ніж я не отримав ніякого відставання.

    Перевірте свої налаштування гри, трохи змініть їх і подивіться, наскільки зміниться ваш fps.

    Не забудьте взяти останні оновлення для Ubuntu, це іноді може вирішити проблеми, хоча у вашому випадку я не думаю, що це допоможе.


    Дякую за вашу відповідь Я не змінив жодних параметрів compiz на цій установці (я навіть не встановив ccsm), тому все про мою настройку є запасом Unity 3D, який ви отримаєте після нової установки. Ні кубів, ні палаючих вікон, нічого. Про мої налаштування ingame: я знаю, що в Ubuntu 11.10 (і пізнішій версії) в Heroes of Newerth все працювало без проблем з точно такими ж налаштуваннями, як і зараз. Моя мета - досягти цього ще раз. Як ви вже уявляли, у мене вже встановлені всі останні оновлення для ubuntu (з офіційних сховищ; не додано інших пап).
    дон

    Що саме я можу змінити в налаштуваннях nvidia? Я не бачу, що я міг би змінити для покращення продуктивності.
    дон

    Є налаштування для vsync, AA та AF та інші інші речі, також є повзунок графічної продуктивності під одним із областей налаштувань, можливо, варто поглянути на це @dong
    nisshh
    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.