Как я останавливаю видео разрыв? (Драйвер опоры Nvidia, не составляя менеджер окон)

У меня есть та проблема, которая по-видимому сокрушает многих использующих собственный драйвер Nvidia:

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

(Примечание: переключение назад на значение по умолчанию nouveau драйвер не является опцией, поскольку ее на вид несуществующее управление питанием истощает мою батарею несколько раз быстрее),

Я попробовал Тотем, Досрочное условное освобождение и VLC, и разрыв происходит со всеми ними. Лучший результат должен был использовать X11 output в VLC, но там все еще рвется с относительно умеренным действием.

Оборудование: MacBook Air 3,2 - который имеет Nvidia GeForce 320M.

Существует два общих мер для разрыва с драйверами опоры Nvidia:

  1. Выключите составление композита, начиная с Nvidia собственные драйверы обычно не играют по правилам с составлением композита менеджеров окон на Linux (Compiz является исключением, о котором я знаю). Но я использую чрезвычайно легкий менеджер окон (Потрясающий менеджер окон), который даже не способен к составлению композита (или никакие прохладные эффекты). У меня также есть эта проблема в Xfce, где у меня есть отключенное составление композита.

  2. Включение синхронизации к VBlank. Для включения этого я установил опцию в 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/

Пример наблюдаемого разрыва:: video tearing

35
задан 12 June 2014 в 00:23

17 ответов

Я использую 64-разрядную элементарную ОС Luna (на основе Ubuntu 12.04 LTS), и у меня возникла та же проблема. Поискав вокруг, я наконец нашел метод, который РАБОТАЕТ, и, очевидно, он включает решение «Powermizer settings to Performance», как уже говорили многие другие люди.

Проблема в том, что после перезапуска эти настройки восстанавливаются до значений по умолчанию Настройка «Авто» и, по-видимому, приложение Nvidia-Settings не сохраняет должным образом новые настройки Powermizer. НЕ БЕСПОКОИТЬСЯ !!!

ПРОСТО СЛЕДУЙТЕ НИЖЕ ИНСТРУКЦИЯМ, ЭТО ТАКОЕ ПРОСТО:

http://ubuntu.aspcode.net/view/635400140124705175636416/nvidia-settings-powermizer-performance-mode-on-12044- 64-битная

Как говорится в статье, создайте приложение для запуска, и все готово !!!! ПОВЕРЬ МНЕ ЭТО РАБОТАЕТ!!! Большое спасибо Aquablue за публикацию этого и, конечно же, Майку из службы поддержки клиентов Nvidia, который предоставил решение !!!

К вашему сведению, у меня есть Phenom II X4, 8 ГБ оперативной памяти DDR3, SSD Corsair, GTX 650, Elementary Luna 64- бит.

0
ответ дан 12 June 2014 в 00:23

Вы можете исправить это для VLC, изменив видеовыход на «OpenGL GLX».

0
ответ дан 12 June 2014 в 00:23

Нажмите на

  1. Dash home
  2. Search for System Settings
  3. Select Network
  4. Select Network Proxy
  5. Select Manual method
  6. Set you proxy and port

Kudos You are Done if you set right

- - Вы сделали это, если вы установите правильную настройку

-. 121---901804-

Одно дело попробовать, что может сработать. Откройте настройки nvidia и перейдите в секцию powermizer. Выберите "Максимальная производительность" в выпадающем списке, и вы увидите, что ваш порошок перескакивает на самую быструю скорость.

После этого попробуйте видео.

Раньше я обнаружил, что vsync не работает, когда на карте nvidia установлена самая медленная настройка порошка.

18
ответ дан 12 June 2014 в 00:23

Извините за этот ответ для openSuSE, а не для Ubuntu, но я наконец-то заставил его работать с этими изменениями,

  • Временно отключите композитинг/оконные эффекты (alt+shift+f12 в openSuSE)
  • Используйте VLC с настройкой "Video", установленной в "OpenGL video output (experimental)". "Ускоренный видеовыход (наложение)" также проверяется для меня. Я использую VLC 2.1.1, если это имеет значение.
  • Установите настройки PowerMizer на производительность, как в ответе mjnichol
  • Установите настройки OpenGL на высокий уровень, как в ответе Amir Dizdarević

Надеюсь, это поможет! Я думаю, что есть некоторые настройки, которые заставят его работать с композитингом, но я рекомендую, по крайней мере, отключить композитинг для тестирования. Моя настройка - 4K монитор и видеокарта GTX 650.

0
ответ дан 12 June 2014 в 00:23

Похоже, у вас запущен какой-то легкий оконный менеджер (предположительно openbox). Если это так, возможно, вы используете xcompmgr как составной менеджер для получения эффектов рабочего стола, таких как тени, прозрачность и т. Д. В моем случае отключение xcompmgr решило ту же проблему: разрыв при просмотре видео, особенно в HD (которые интенсивно используют процессор). Очевидно, разрыв произошел из-за ошибки в xcompmgr, который давно заброшен. Чтобы выключить xcompmgr, вы можете выполнить «killall xcompmgr». Это должно сработать. Надеюсь, поможет! Салудо! Пабло.

-2
ответ дан 12 June 2014 в 00:23

Я мог выбрать окно курсором, переместить окно, и это исправило разрыв. Так что, похоже, некоторые проблемы с обратным вызовом в X.

Для меня исправление vlc было:

vlc -> инструменты -> настройки -> видео -> в раскрывающемся списке «вывод» выберите Видеовыход x11 (XCB)

0
ответ дан 12 June 2014 в 00:23

В дополнение к предыдущему посту Дэвида: если вы хотите установить последние проприетарные драйверы 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
ответ дан 12 June 2014 в 00:23

Я использую 64-битную версию Ubuntu 12.04LTS и nvidia gtx 660ti.

Я мучился разрывом видео более месяца, пока не нашел решение.

Откройте Настройки сервера nvidia x -> PowerMizer -> Настройки PowerMizer (внизу) и там написано: «Предпочитаемый режим, "измените настройку с Adaptive на Prefer Maximum Performance.

1
ответ дан 12 June 2014 в 00:23

Если вы не используете двойной монитор, есть еще одна возможность. Существует два разных типа синхронизации с vblank: один для XVideo и один для OpenGL. В настройках nvidia один находится в разделе «Настройки X Server XVideo», а другой - в разделе «OpenGL / Настройки». Какой из них действительно влияет на ваше программное обеспечение для воспроизведения видео, может зависеть от того, какой плагин вывода он использует.

0
ответ дан 12 June 2014 в 00:23

У меня были те же проблемы с разрывом видео. В моем случае я заметил, что удаление происходит только в полноэкранном режиме. Проблема, по всей видимости, заключается в масштабировании видео до полноэкранного. Если исходный размер воспроизводимого видео и разрешения экрана не совпадают, в видео происходит разрыв. Установка соотношения сторон в smplayer к соотношению сторон дисплеев устранил проблему для меня.

например, я воспроизводил видео размером 1280x714 в полноэкранном режиме, видео было разорвано. io видео до 16: 9, воспроизведение было плавным.

Я должен отметить, что основная причина проблемы остается там и раздражает. Поскольку соотношение сторон не сохраняется исходным, видео будет искажаться. Однако лучше смотреть без слез;)

1
ответ дан 12 June 2014 в 00:23

Судя по вашему описанию, я не уверен, действительно ли вы видите слезы; Обычно разрыв выглядит так, как будто изображение разделено по горизонтали на две или три части, причем части не совпадают. Это происходит потому, что верхняя часть изображения и нижняя часть не принадлежат одному и тому же кадру видео. В Википедии есть хороший смоделированный пример разрыва экрана . Тонкие горизонтальные линии звучат иначе, больше похоже на расчесывание артефактов из-за плохого деинтерлейсинга, хотя, может быть, это просто сложно описать.

Вы не упоминаете никаких деталей видео, которое пытаетесь посмотреть, например, его разрешение, кодирование, чересстрочная или прогрессивная развертка, и включен ли деинтерлейсинг в VLC. Также, возможно, стоит проверить, выгружается ли обработка видео на GPU , или же CPU выполняет всю работу. Подтвердили ли вы, что можете успешно просматривать одно и то же видео на другом оборудовании или на MacBook с OS X?

Вы говорите, что пробовали отключить композитинг на XFCE, но, вероятно, не помешало бы попробовать добавить:

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

в ваш /etc/X11/xorg.conf на всякий случай. Кроме того, еще одно предложение, не упомянутое до сих пор, - это добавить:

Option "UseEvents" "True"

в разделы Device или Screen вашего xorg.conf.

ОБНОВЛЕНИЕ:

Приложенный снимок экрана определенно показывает разрыв! Если в остальном проигрыватель не отставал от декодирования видео (то есть, без заиканий, замедлений, только разрывов), то, вероятно, не имеет значения, выполняет ли декодирование процессор или графический процессор. VLC имеет опцию на странице настроек видео в настройках для включения и выключения «Ускоренного вывода видео»; если он включен, для декодирования должен использоваться графический процессор. Если вы переключите этот параметр в VLC и запустите top в терминале во время воспроизведения видео, вы должны увидеть разницу в использовании ЦП между двумя настройками. Вы также можете попробовать отключить деинтерлейсинг в VLC, чтобы увидеть, имеет ли это значение.

У меня есть два других предложения:

Я не вижу ничего явно неправильного с вашим xorg.conf, но вы можете удвоить -проверьте, что обе настройки синхронизации с vblank (на X Server XVideo Settings и OpenGL Settings) правильно сохранены в .nvidia-settings-rc. Некоторые люди запускают nvidia-settings как root или с помощью gksudo (чтобы он мог обновлять /etc/X11/xorg.conf), но это может привести к тому, что настройки будут храниться в /root/.nvidia-settings-rc, а не в ~ /. nvidia-settings-rc. Это должна быть ваша собственная копия, но, чтобы избежать каких-либо сомнений, вы должны проверить оба параметра vblank при запуске nvidia-settings от имени вас; не забудьте нажать «Сохранить текущую конфигурацию» на нижней странице настроек. Если вы запустите:

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[12187 providedfrom

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 в метамодах (в разделе Screen), что говорит о том, что он не исправлен. Однако ваше определение монитора предлагает только 60.0, так что, возможно, это несущественно. Может быть интересно создать резервную копию и переместить ваш xorg.conf, а также повторно запустить nvidia-xconfig и nvidia-settings, чтобы увидеть, не получите ли вы другую конфигурацию.

0
ответ дан 12 June 2014 в 00:23

Не уверен, что это поможет вам, но у меня это сработало. Откройте настройки nvidia и измените Frecuency с Auto на 60. И нажмите "Применить". Это решило мои проблемы с разрывом видео и общим мерцанием рабочего стола. К сожалению, мне приходится делать это каждый раз при перезапуске.

1
ответ дан 12 June 2014 в 00:23

У меня это сработало с драйвером 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
ответ дан 12 June 2014 в 00:23

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

  1. Сделайте обычный композит в ccsm

    • В разделе Composite выключите Detect Refresh Rate и введите текущий номер вашего монитора вручную.
    • Я включил 'Copy to Texture', не уверен, помогло это или нет.
    • В разделе OpenGL: Tex. Filter - Best
    • Sync to VBlank is on
    • Unity Plugin: (не уверен, помогло это или нет, но предположительно увеличивает скорость) Панель Прозрачность - 1.0000, то же самое для Launcher Прозрачность. Dash Blur - Static
  2. Делайте обычное волшебство nvidia-настроек:

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

    • Packages: mplayer libvdpau1 vdpau-va-driver
  4. Set up MPlayer (Я тоже пробовал gnome-mplayer, но результат не такой большой, как я пробовал)

    • Open the file ~/.mplayer/config or create it if you don't have it. Возможно, вам также придется создать папку .mplayer. Она должна содержать следующее:
    • .
[default]
ao=импульс
vo=vdpau

Замените ao на alsa, если вы удалили импульсное звучание.

Перезапустите X, выйдя/входя снова.

Попробуйте, YMMV, как всегда. Я обнаружил, что, особенно в не-LTS-релизах или с бета-драйверами, это может больше не работать в зависимости от кодека видео.

4
ответ дан 12 June 2014 в 00:23

Я тоже страдал от разрывов видео в моем процессоре Intel Sandy Bridge. Это сработало для меня. Я поместил следующие строки в «/ etc / environment» -

CLUTTER_PAINT = disable-clipped-redraws: disable-culling
CLUTTER_VBLANK = True

, и это сработало. Нажмите Enter в конце и скопируйте и вставьте эти строки. Может потребоваться перезагрузка. Попробуйте.

7
ответ дан 12 June 2014 в 00:23

Если вы используете два монитора, драйвер nvidia может синхронизироваться только с vblank одного из дисплеев, если они не используют точно такую ​​же частоту обновления. И я имею в виду именно . Это фактически невозможно, если оба монитора не относятся к одному и тому же типу. В случае, если драйвер nvidia синхронизируется с неправильным дисплеем (например, синхронизируется со встроенным дисплеем, когда вы хотите посмотреть фильм на внешнем телевизоре), вы можете отменить его выбор. Из документации драйвера nvidia:

При использовании __GL_SYNC_TO_VBLANK с TwinView OpenGL может синхронизироваться только с одним из устройств отображения; это может вызвать разрывное повреждение устройства отображения, с которым не синхронизируется OpenGL. Вы можете использовать переменную среды __GL_SYNC_DISPLAY_DEVICE, чтобы указать, с каким устройством отображения OpenGL должен синхронизироваться. Вы должны установить эту переменную среды на имя устройства отображения; например «ЭЛТ-1». Найдите строку «Подключенные устройства отображения:» в файле журнала X, чтобы получить список имеющихся устройств отображения и их имена.

Я установил это постоянно в / etc / environment - просто добавьте что-то подобное в новая строка:

__ GL_SYNC_DISPLAY_DEVICE = "DFP-0"

11
ответ дан 12 June 2014 в 00:23

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

Если после загрузки , он работает в отказоустойчивом режиме, войдите в режим восстановления и запустите sudo nvidia-xconfig . Удачного воспроизведения видео!

1
ответ дан 12 June 2014 в 00:23

Другие вопросы по тегам:

Похожие вопросы: