Як зупинити відривання відео? (Драйвер підтримки Nvidia, менеджер вікон, що не складається)


35

У мене є та проблема, яка, здавалося б, страждає багатьох із використанням власного драйвера Nvidia:

Відривання відео : тонкі горизонтальні лінії (як правило, у верхній частині мого дисплея), коли у відео багато панорамування чи дій.

(Примітка: повернення до драйвера nouveau за замовчуванням - це не варіант, оскільки його, здавалося б, неіснуюче управління живленням витрачає акумулятор в кілька разів швидше)

Я спробував Totem, Parole та VLC, і зірвання відбувається у всіх них. Найкращим результатом було застосування X11 outputв VLC, але все ще спостерігається сльозотеча з відносно помірною дією.

Обладнання: MacBook Air 3,2 - який має Nvidia GeForce 320M.

Існує два поширених виправлення для виривання драйверів для підключення Nvidia:

  1. Вимкніть композицію , оскільки драйвери фірмових файлів Nvidia зазвичай не дуже добре грають із складанням менеджерів вікон під Linux (Compiz - це виняток, про який я знаю). Але я використовую надзвичайно легкий менеджер вікон (Awesome window manager), який навіть не здатний скласти композицію (або будь-які круті ефекти). У мене також є проблема в Xfce, де у мене вимкнення композиції.

  2. Увімкнення синхронізації з VBlank. Щоб увімкнути це, я встановив параметр in, nvidia-settingsа потім автозапустити його, як nvidia-settings -lі в інших моїх програмах автозапуску. Це, здається, працює, тому що коли я бігаю glxgears, я отримую:

    $ glxgears
     Running synchronized to the vertical refresh.  The framerate should be
    approximately the same as the monitor refresh rate.
    303 frames in 5.0 seconds = 60.500 FPS
    300 frames in 5.0 seconds = 59.992 FPS
    

    І коли я перевіряю частоту оновлення, використовуючи nvidia-settings:

    $ nvidia-settings -q RefreshRate
    Attribute 'RefreshRate' (wampum:0.0; display device: DFP-2): 60.00 Hz.
    

    Все це говорить про синхронізації з VBlank буде включена. Як я розумію, це розроблено саме для того, щоб припинити сльозотечу, і у багатьох людей проблема навіть у тому, glxgearsщоб вивести правильну інформацію. Я не розумію, чому це не працює для мене.

xorg.conf : http://paste.ubuntu.com/992056/

Приклад спостережуваного розриву :відривання відео


чи можете Ви вставити файл xorg.conf, будь ласка? Ви експериментували з Option "TripleBuffer" "1"вашим файлом xorg.conf?
fossfreedom

Я спробував TripleBuffer; це ніби трохи допомагає, але не сильно. Я приберу свою xorg.conf.
Чан-Хо Су

Ви використовуєте подвійні монітори?
Алістер Бакстон

Той самий випуск у 12.10 із Flash у браузері, хоча не рветься у VLC, який я бачу, ні при перетягуванні вікон навколо. Ви знайшли рішення з тих пір?
Bleep Bloop

Відповіді:


18

Одна річ , щоб спробувати , що , можливо , роботу. Відкрийте налаштування nvidia та перейдіть до розділу Powermizer. У спадному меню виберіть "Максимальна продуктивність", і ви побачите, як рівень енергетичного механізму підскочить до найшвидшої.

Щойно ви зробите це, спробуйте відео.

У минулому я виявив, що vsync не працює, коли карта nvidia знаходиться на найповільніших налаштуваннях Powermizer.


Дякую! Це працювало для мене за допомогою власного драйвера nvidia (310.19) в Arch Linux. Я намагаюся вирішити це вже досить давно. Таке дивне питання.
Рейд

Чи можливо керувати цим параметром з командного рядка? Так що я можу це ввімкнути, коли запускаю відеоплеєр (і відключати його після закриття програвача)?
панци

1
Ага. nvidia-settings -a GPUPowerMizerMode=1встановлює його на продуктивність і nvidia-settings -a GPUPowerMizerMode=2на автоматичне.
панци

11

Якщо ви використовуєте подвійні монітори, драйвер nvidia може синхронізувати лише в vblank одного з дисплеїв, якщо вони не використовують точно таку ж частоту оновлення. І я маю на увазі точно . Це фактично неможливо, якщо обидва монітори не є однаковими. У випадку, якщо драйвер nvidia синхронізується з неправильним дисплеєм (наприклад, синхронізація з вбудованим дисплеєм, коли ви хочете переглянути фільм на зовнішньому телевізорі), ви можете змінити його вибір. З документації на драйвер nvidia:

Під час використання __GL_SYNC_TO_VBLANK з TwinView OpenGL може синхронізувати лише один із пристроїв відображення; це може спричинити пошкодження на екрані пристрою, на якому OpenGL не синхронізується. Ви можете використовувати змінну середовища __GL_SYNC_DISPLAY_DEVICE, щоб вказати, на якому пристрої відображення OpenGL повинен синхронізуватися. Ви повинні встановити цю змінну середовища для імені пристрою відображення; наприклад "CRT-1". Шукайте рядок "Підключені пристрої відображення:" у вашому файлі журналу X, щоб переглянути список присутніх пристроїв відображення та їх назви.

Я встановив це постійно в / etc / environment - просто додайте щось подібне до нового рядка:

__GL_SYNC_DISPLAY_DEVICE="DFP-0"


Привіт Алістер. Дякую за пропозицію, але я використовую лише один дисплей.
Чан-Хо Су

7

Я теж страждав від розриву відео в моєму процесорі Intel Sandy Bridge. Це працювало для мене. Я ставлю наступні рядки у "/ etc / environment" -

CLUTTER_PAINT = відключити-обрізано-перемальовує: відключити-
викреслити CLUTTER_VBLANK = Істинно

і це спрацювало. Натисніть Enter в кінці та скопіюйте вставте ці рядки. Може знадобитися перезапуск. Спробуй це.


2
Дякую за пропозицію, але це змінні середовища Gnome3 (наприклад, використовувані Gnome Shell). Я використовую дуже мінімальний менеджер вікон, тому це не стосується мене. Крім того, у мене немає процесора Sandy Bridge.
Чан-Хо Су

Це рішення вирішило проблему зі сльозами, яку я мав на робочому столі Cinnamon (менеджер вікон Mutter) та драйвери nvidia 313 13.04. Вибачте, що натрапили на стару публікацію, але дякую.
аскун

4

Ось як я вирішив проблеми з vsync для відео на своєму ноутбуці ASUS K50IN з NVIDIA GeForce G102M . Я знаю, що ваш пробіг може відрізнятися, оскільки картки різні, але ви можете спробувати це ... Трюк для мене полягав у тому, щоб використовувати босоніжки MPlayer (але не MPlayer2!). Він не працює з будь-яким з інших гравців.

  1. Зробіть звичайну магію compiz в куб. М

    • У розділі Композитний вимкніть Виявити швидкість оновлення та введіть поточний монітор вручну.
    • Я ввімкнув "Копіювати в текстуру", не знаючи, чи допомогло це чи ні.
    • У розділі OpenGL: фільтр текста - найкращий
    • Синхронізація з VBlank включена
    • Unity Plugin: (не впевнений, чи це допомагало комусь, але це нібито покращує швидкість) Непрозорість панелі - 1.0000, те ж саме для запуску непрозорості. Розмиття тире - статичне
  2. Зробіть звичайну магію налаштувань nvidia:

    • Увімкніть синхронізацію з VBlank в налаштуваннях XVideo та OpenGL
    • Встановіть Параметри зображення на високу якість у налаштуваннях OpenGL
    • У розділі Конфігурація дисплея встановіть роздільну здатність вручну, а потім встановіть частоту оновлення від Авто до поточної частоти оновлення.
  3. Встановіть mplayer та vdpau (НЕ mplayer2 !!! Це нове та експериментальне значення, і, принаймні, для мене було відставання з VDPAU)

    • Пакети: mplayer libvdpau1 vdpau-va-driver
  4. Налаштування MPlayer (я також спробував gnome-mplayer, але це не має такого ж результату, як важко, як я намагався)

    • Відкрийте файл ~ / .mplayer / config або створіть його, якщо у вас його немає. Можливо, вам також доведеться створити папку .mplayer . Він повинен містити таке:
[default]
ao=pulse
vo=vdpau

Змініть ao на alsa, якщо ви видалили імпульсне звук.

Перезапустіть X, вийшовши / ввівшись знову.

Спробуйте, YMMV, як завжди. Я виявив, що, особливо в не-LTS-версіях або з бета-версіями, це може не працювати більше, залежно від кодека відео.


1

Це працювало для мене на драйвері ATI radeon, тому воно може працювати для вас:

Додайте файл конфігурації (наприклад, case /etc/X11/xorg.conf.d/20-nouveau.conf)

що складається з цього:

Section "Device"
    Option      "EXAVsync"  "True"
    Option      "GLXVBlank" "True"
    Identifier  "Nvidia card"
    Driver      "nouveau"
EndSection

EXA - основа для складання відео; не здається, що vsnc за замовчуванням.

Можливо, варто також спробувати інше програмне забезпечення (наприклад, vlc) для відтворення відео.


1
Як я вже згадував у своєму дописі, перехід на драйвер за замовчуванням - це не варіант.
Чан-Хо Су

1

Не впевнений, чи це вам припаде до душі, але це працювало на мене. Відкрийте налаштування nvidia та змініть Frecuency з Авто на 60. І натисніть застосувати. Це вирішило мої проблеми із розривом відео та загальним мерехтінням робочого столу. На жаль, мені доводиться робити це кожного разу, коли я перезапускаюсь.


1
Як я пояснив у своєму дописі, частота оновлення дисплея - 60 Гц. Що стосується вашого питання, то дотримуйтесь цієї відповіді .
Чан-Хо Су

1

У мене були ті самі проблеми зі сльозою на відео. У моєму випадку я помітив, що руйнування відбувається лише в повноекранному режимі. Здається, проблема полягає в масштабуванні відео на повноекранному екрані. Всякий раз, коли вихідний розмір відтвореного відео та коефіцієнт роздільної здатності екрана не збігаються, у відео зірветься. Встановлення співвідношення сторін у програмі в програмі для співвідношення сторін дисплея вирішило для мене проблему.

наприклад, я відтворював відео в розмірі 1280x714 на повноекранному екрані, у відео було сльоза. Коли я змусив співвідношення сторін відео до 16: 9, відтворення було плавним.

Мушу зазначити, що першопричина проблеми залишається там і дратує. Оскільки співвідношення сторін не зберігається оригінальним, у відео буде певна деформація. Однак краще дивитися без сліз;)


1

Я використовую Ubuntu 12.04LTS 64bit і у мене є nvidia gtx 660ti.

Я страждала від розриву відео більше місяця, поки не знайшла рішення.

Відкрийте налаштування сервера nvidia x -> PowerMizer -> Налаштування PowerMizer (біля нижньої частини), і там, де написано, «Переважний режим», змініть налаштування з Адаптивний на Переважний Максимальна продуктивність.


1

Оновлення до версії 319 від PPA вирішило проблему:

Якщо після завантаження він запускається в режимі відмови, перейдіть до відновлення та запустіть sudo nvidia-xconfig. Щасливого відтворення відео!


0

Якщо ви не використовуєте подвійний монітор, є ще одна можливість. Існує два різні види синхронізації з vblank: один для XVideo та один для OpenGL. У налаштуваннях nvidia один знаходиться під "Налаштуваннями X Server XVideo", а другий - під "OpenGL / Settings". Який із них впливає на програмне забезпечення для відтворення відео, може залежати від того, який вихідний плагін він використовується.


У VLC є варіанти для цих двох виходів, і я спробував їх обидва.
Чан-Хо Су

0

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

Ви не згадуєте жодних деталей відео, яке ви намагаєтеся переглядати, наприклад, його роздільну здатність, кодування, а також, якщо воно переплетене чи прогресивне, чи увімкнено функцію де-переплетення у VLC. Можливо, варто також перевірити, чи обробка відео завантажується на графічний процесор , чи ЦП виконує всю роботу. Ви підтвердили, що ви можете успішно переглядати одне і те ж відео на різних апаратних засобах або на MacBook за допомогою OS X?

Ви кажете, що ви намагалися створити вимкнено композицію на XFCE, але, мабуть, не завадило б спробувати додати:

Section "Extensions"
    Option "Composite" "Disable"
EndSection

до вашого /etc/X11/xorg.conf, щоб бути впевненим. Крім того, ще одна пропозиція, не згадана до цього часу, - додати:

Option "UseEvents" "True"

до розділів Пристрій або Екран вашого xorg.conf.

ОНОВЛЕННЯ:

На доданому скріншоті однозначно видно сльозотечу! Якщо плеєр інакше не відстає від розшифровки відео (тобто немає заїкання повільних спадів, просто розрив), то, мабуть, не має значення, чи розшифровує процесор чи GPU. VLC має опцію на сторінці налаштувань відео в налаштуваннях, щоб увімкнути та вимкнути "прискорений вихід відео"; якщо він увімкнено, для декодування слід використовувати GPU. Якщо ви перемкнете це налаштування у VLC та запустітьtop у терміналі під час відтворення відео, ви повинні побачити різницю у використанні процесора між двома налаштуваннями. Ви також можете спробувати вимкнути будь-яке повторне переплетення у VLC, щоб побачити, чи це має значення.

У мене є ще дві пропозиції:

Я не бачу нічого очевидного неправильного з вашим xorg.conf, але ви можете двічі перевірити, чи обидва параметри синхронізації з налаштуваннями vblank (у налаштуваннях X Server XVideo та OpenGL) правильно зберігаються у .nvidia-settings-rc. Деякі люди виконують налаштування nvidia як root або використовують gksudo (тому він може оновлювати /etc/X11/xorg.conf), але це може призвести до того, що налаштування зберігатимуться в /root/.nvidia-settings-rc, а не ~ /. nvidia-settings-rc. Потрібно збирати власну копію, але щоб уникнути будь-яких сумнівів, слід перевірити обидва налаштування vblank під час запуску nvidia-налаштувань, як і ви; не забудьте натиснути "Зберегти поточну конфігурацію" на нижній сторінці налаштувань. Якщо ви запускаєте:

nvidia-settings -q=XVideoTextureSyncToVBlank -q=SyncToVBlank

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

Інша річ, яку ви можете спробувати, - це оновити / знизити драйвери nvidia. Я раніше відчував розриви з деякими незначними оновленнями версій драйвера; напевно є "хороші" та "погані" версії драйверів nvidia, і останні не завжди є найкращими. Ви можете спробувати оновити за допомогою X-swat PPA:

https://launchpad.net/~ubuntu-x-swat/+archive/x-updates

Ви можете спробувати перейти на більш ранню версію, доступну до 12.04:

https://launchpad.net/ubuntu/precise/amd64/nvidia-current або https://launchpad.net/ubuntu/precise/i386/nvidia-current

залежно від того, у вас встановлено amd64 або i386. Клацніть на номер версії праворуч, яку ви хочете спробувати, завантажте .deb-файл та встановіть за допомогою:

sudo dpkg --install <name of file>.deb

Наприклад, через непов’язану помилку nvidia мені довелося завантажити це:

http://launchpadlibrarian.net/90395807/nvidia-current_290.10-0ubuntu2_amd64.deb

з

https://launchpad.net/ubuntu/precise/amd64/nvidia-current/290.10-0ubuntu2

і встановив його за допомогою:

sudo dpkg --install nvidia-current_290.10-0ubuntu2_amd64.deb

Ще один крихітний момент: одна інша відповідь згадує про зміну частоти оновлення з Авто на 60 ГГц, а ви говорите, що вона вже встановлена ​​на 60 ГГц. Однак доданий файл xorg.conf має nvidia-auto-select у метамодах (у розділі Екран), що говорить про те, що він не виправлений. Однак визначення вашого монітора пропонує лише 60,0, тому, можливо, це не має значення. Можливо, буде цікавим створити резервну копію та перемістити ваш xorg.conf, а також запустити nvidia-xconfig та nvidia-настройки, щоб побачити, чи ви отримаєте інший конфігурацію.


Привіт, Девіде. Я завантажив зображення моєї передбачуваної сльозотечі :-) Скажіть, будь ласка, чи відповідає "сльозі". Це трапляється в значній мірі на будь-якому відео, яке я дивлюсь, тому я не вважав, що варто розбиратися в конкретиці. Чи є у вас якісь пропозиції щодо тестування конкретно? Я спробував ці варіанти (і згодом їх видалив), але, можливо, є якась комбінація, яку я повинен спробувати? Якщо ви можете поглянути на мій вставлений xorg.conf, дайте мені знати, чи є щось, здавалося б, не так. Як перевірити, чи не працює GPU? Нарешті, так, одне і те ж відео ніколи не має проблеми в OS X на одній машині.
Чан-Хо Су

Здається, у водія нуво немає тієї самої проблеми. Єдине, що мені вдалося поставити діагноз, який здається інакшим, це те, що при nouveau FPS становить близько 600 без необхідності додаткової конфігурації.
Чан-Хо Су

Так, це схоже на розрив. Вибачте за сумніви :-)
Девід Едвардс

Я додав додаткові пропозиції на основі ваших відгуків.
Девід Едвардс

На жаль, не пощастило. Я думаю, можливо, єдине, що потрібно зробити, це чекати, коли Nvidia покращить підтримку GeForce 320M, хоча мені цікаво, чому у Nouveau немає проблем.
Чан-Хо Су

0

На додаток до попереднього довідника Девіда: якщо ви хочете встановити найновіші власні драйвери NVidia за допомогою X-swat PPA, ви також можете додати його до своїх підходящих джерел:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current

Це дозволить встановити останню версію та інформувати вас про їх поставки.


0

Вибачте, ця відповідь дещо для openSuSE, а не для Ubuntu, але я нарешті змусив її працювати з цими змінами,

  • Тимчасово відключити ефекти композитування / вікна (alt + shift + f12 у openSuSE)
  • Використовуйте VLC з налаштуванням "Video", встановленим на "OpenGL відео вихід (експериментальний)". "Прискорений вихід відео (накладення)" також перевіряється для мене. Я використовую VLC 2.1.1, якщо це має значення.
  • Встановіть параметри PowerMizer на продуктивність, як у відповіді mjnichol
  • Встановіть налаштування OpenGL на високе, як у відповіді Аміра Діздаревича

Сподіваюся, це допомагає! Я думаю, що є певні налаштування, щоб зробити роботу з композицією, але я рекомендую принаймні вимкнути композицію для тестування. Моя установка - це монітор 4K та відеокарта GTX 650.



0

У мене працює 64-бітна елементарна ОС Luna (заснована на Ubuntu 12.04 LTS), і у мене була така ж проблема. Шукаючи навколо, я нарешті знайшов метод, який ПРАЦЮЄ і, очевидно, він включає рішення "Powermizer настройки для продуктивності", як уже говорили багато інших людей.

Проблема полягає в тому, що після перезавантаження ці налаштування відновляться до налаштувань "Автоматичне" за замовчуванням, і, очевидно, програма Nvidia-Settings не зберігає належним чином нові налаштування Powermizer. НЕ БУДЬ СЛОВО !!!

ПОВИННІ ВИКОРИСТАННЯ ІНСТРУКЦІЙ ВИПУСКУ, ТАКЕ SOOOOO ПРОСТО:

http://ubuntu.aspcode.net/view/635400140124705175636416/nvidia-settings-powermizer-performance-mode-on-12044-64-bit

Як говориться в статті, зробіть додаток для запуску, і ви готові йти !!!! ДОВІЙТЕ МЕНІ РОБОТИ !!! Величезне спасибі Aquablue за повідомлення про це та, звичайно, Майку з обслуговування клієнтів Nvidia, який надав рішення !!!

FYI, у мене є Phenom II X4, 8 ГБ оперативної пам'яті DDR3, Corsair SSD, GTX 650, Elementar Luna 64-бітний.


0

Я міг вибрати вікно своїм курсором, перемістити вікно, і воно виправило сльозотечу. Так здається, деякі проблеми з зворотним дзвінком у X.

Для мене виправлення vlc:

vlc -> інструменти -> налаштування -> відео -> у спадному меню "вихід" виберіть x11 video output(XCB)


-2

Здається, ви працюєте з легким менеджером вікон (імовірно, openbox). Якщо це так, можливо, ви використовуєте xcompmgr як складений менеджер, щоб отримати ефекти на робочому столі, такі як тіні, прозорі плівки тощо. HD (які є інтенсивними процесорами). Мабуть, розрив стався через помилку в xcompmgr, що є давно покинутим проектом. Щоб вимкнути xcompmgr, ви можете виконати "killall xcompmgr". Це має спрацювати. Сподіваюся, це допомагає! Салудос! Пабло.


Мабуть, ви дуже уважно читаєте мій пост. Між іншим, не потрібно було вбиватиxcompmgr . Просто не запускайте його в першу чергу.
Чан-Хо Су
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.