LINUX.ORG.RU

NVIDIA, vsync, screen tearing. Не могу побороть


0

1

Привет! Кто поможет советом? Наблюдается противноё подёргивание в окошках при скроллинге вверх-вниз и перетаскивании по горизонтали.

OpenSUSE 12.1 У меня две видюшки, NVIDIA (дрова - проприетарные) и Intel (MB-embedded), к каждой подцеплено по монику, 22" (1680*1050) и 17" (1280*1024), с Xinerama всё работает хорошо, однако же подёргивание наблюдается на обоих экранах. Без Ксинерамы лучше не становится, каждый монитор по-отдельности работает так же плохо.

Тест mplayer-ом ('mplayer -benchmark -nosound -frames 1000 -vo xv SUPERPRON.avi') показывает около 60 fps.

glxgears показывает ~60 fps.

Далее следует вывод lspci, xorg.conf, /var/log/xorg.0.log и значения двух переменных среды, якобы значимых для запуска vsync на карточках NVIDIA. Поехали:

lspci

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 Display controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB Controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b5)
00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5)
00:1d.0 USB Controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5)
00:1f.0 ISA bridge: Intel Corporation H67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller (rev 05)
01:00.0 VGA compatible controller: nVidia Corporation GF110 [GeForce GTX 580] (rev a1)
01:00.1 Audio device: nVidia Corporation GF110 High Definition Audio Controller (rev a1)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
04:00.0 USB Controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)

NVIDIA Driver Version 284.05.09

echo $__GL_SYNC_DISPLAY_DEVICE 
CRT-0

echo $__GL_SYNC_TO_VBLANK
1

cat /etc/X11/xorg.conf

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

Section "ServerFlags"
  Option "Xinerama" "true"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    BusID          "PCI:01:00:0"
    VendorName     "NVIDIA Corporation"
    Option         "RenderAccel" "true"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "intel"
    BusID          "PCI:00:02:0"
    Option         "RenderAccel" "true"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        Modes       "1680x1050_60"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        Modes       "1280x1024_60"
        Virtual     1280 1050
    EndSubSection
EndSection

UPDATE: не могу запостить вывод log, говорят, слишком большой. Выложил на dropbox'е /var/log/xorg.0.log

http://dl.dropbox.com/u/9510745/log.txt

UPDATE: порекомендовали добавить частоты в сектии Monitor. Добавил:

HorizSync 30-81
VertRefresh 56-75
в обеих секциях, значения подлгядел в мануалах к мониторам. Не помогает.



Последнее исправление: buter-brod (всего исправлений: 5)

попробуй в секции «монитор» забить реальные параметры своих моников по типу

Section «Monitor» Identifier «Monitor0» VendorName «Unknown» ModelName «Unknown» HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option «DPMS» EndSection

Section «Device» Identifier «Device0» Driver «nvidia» VendorName «NVIDIA Corporation» EndSection

у мня тоже опенсуся-12.1 но такого как у тебя нету! да драйвер нвидии-290.10

ipwww ★★
()

Когда купил монитор для ноутбука, то наблюдал похожую проблему. Правда оказалось что проблема не программная... Дело было в питании от сети, зарядка от ноута подключена вместе с моником в один сетевой фильтр, а заземление в квартирных розетках нету, в итоге это давало полоски помех на мониторе при движении мышью. Может у тебя что-то похожее... Решил проблему одев кемрики на штыри заземления в сетевом фильтре.

anonymous
()
Ответ на: комментарий от ipwww

отличие от моего фалика - в HorizSync и VertRefresh?

Я их добавил (чуть ниже указал в том же посте) - не помогло:/

buter-brod
() автор топика
Ответ на: комментарий от anonymous

очень похоже именно на vsync

Как будто играешь в кваку, котрая выдаёт 300+ fps без синхронизации. Точь-в-точь такое же ощущение.

buter-brod
() автор топика

С Xinerama тиринга не избежать (синхронизация в принципе не предусмотрена), а без неё две видеокарты вроде как не задействовать. Отдельно на Intel-е с одним монитором таких проблем вроде бы быть не должно (хотя возможно в вашем случае как-то мешает факт наличия проприетарного драйвера nVidia).

(В целом, безотносительно вашего случая с использованием двух видеокарт.) Есть решения без тиринга для следующих комбинаций:
Оба монитора подключены к видеокарте nVidia - при полноэкранном воспроизведении видео можно добиться отсутствия тиринга на одном из мониторов (отключением эффектов для полноэкранных приложений в настройках композитного менеджера, либо отключением самого композитного менеджера). При перетаскивании окошек, если пользуйтесь проприетарным драйвером nVidia, тиринг будет всегда (ну, или до тех пор, пока разработчики композитных менеджеров не согласятся реализовать поддержку костылей для синхронизации при использовании проприетарного драйвера nVidia, но пока желающих нет).
Оба монитора подключены к видеокарте AMD, в настройках проприетарного драйвера включён TearFreeDesktop, на одном из мониторов тиринга не будет совсем.
Оба монитора подключены к видеокарте AMD, если используется свободный драйвер на одном из мониторов тиринга не будет совсем.

Вам могу порекомендовать либо подождать, пока разработчики nouveau реализуют V-Sync, перейти на него, а оба монитора подключить к видеокарте nVidia (результат будет как со свободным драйвером для AMD). Ну либо сменить видеокарту на AMD.

RussianNeuroMancer ★★★★★
()

.Cast Nxx. У него после обновления на 12.1 тоже возникло и я не помню как он поборол эту проблему. Кажется, установкой старой ветки драйвера.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Нет, дело было не в обновлении, а в кдешном композитинге. Отключил -стало нормально.

Nxx ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.