DarkDigger |
|
Темы:
30
Сообщения:
133
Участник с: 26 декабря 2012
|
Я так понял очень популярная тема, только вот ответа на неё нет... Карточка 01:00.0 VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 660] (rev a1) Драйвера: [digger@digger ~]$ pacman -Qs nvidia local/lib32-nvidia-libgl 325.15-1 local/lib32-nvidia-utils 325.15-1 local/libvdpau 0.7-1 local/nvidia 325.15-3 local/nvidia-libgl 325.15-1 local/nvidia-utils 325.15-1 [digger@digger ~]$ cat /etc/X11/xorg.conf.d/20-nvidia.conf Section "Device" Identifier "Default nvidia Device" Driver "nvidia" Option "NoLogo" "True" Option "TwinView" "off" Option "TripleBuffer" "1" EndSection Окна рвутся, видео в видеплеерах с полосами... На счёт видео частично решилось тем что в параметры системы-эффекты рабочего стола-дополнительно поставил галочку "Отключть эффекты для полноэкранных окон" В nvidia-settings стоят галочки в opengl settings: "Sync to VBlank" и "Allow Flipping" (Хотя пробовал их включать/выключать в разных комбинациях с настройками KDE-предотвращение разрывов в настройках эффектов) А теперь МЕГА-КОСТЫЛЬ: После включения компа, заходим в настройки эффектов рабочего стола-дополнительно-предотвращение разрывов vsync (стоит полная перерисовка) ставлю на Нет, применить, опять ставлю на полная перерисовка, применить, и вуаля! Никаих полос! Можно ли эту процедуру записать в скрипт? kostil.sh :) |
DarkDigger |
|
Темы:
30
Сообщения:
133
Участник с: 26 декабря 2012
|
Пробовал export __GL_SYNC_TO_VBLANK=1 export __GL_SYNC_DISPLAY_DEVICE=CRT-0 export __VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=CRT-0 Не помогло |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
А у вас видео выводится через gl, что вы крутите синхронизацию для OpenGL? Если выводится через xv, там совсем другой параметр, насколько я помню, и настраивается в nvidia-settings в разделе настроек видео-оверлея. Кроме того, аналогичные разрывы бывают при проблемах с оконным или композитным менеджером, если он будет по каким-то причинам программно перерисовывать видео. Этот случай можно легко отследить, если во время воспроизведения видео посмотреть top Если у вас в это время оконный менеджер и/или X-сервер будут кушать процессор сравнимо с плеером, значит перерисовка таки идёт. Если у вас включён композитный режим – попробуйте его выключить или изменить его настройки. |
lumberjack |
|
Темы:
166
Сообщения:
801
Участник с: 06 января 2012
|
DarkDigger, у меня никакие шаманства с конфигами иксов, как и перебирание композитных манагеров и их параметров, не возымели действия... |
DarkDigger |
|
Темы:
30
Сообщения:
133
Участник с: 26 декабря 2012
|
Да нет же, я нашёл тупое, но решение: А теперь МЕГА-КОСТЫЛЬ: После включения компа, заходим в настройки эффектов рабочего стола-дополнительно-предотвращение разрывов vsync (стоит полная перерисовка) ставлю на Нет, применить, опять ставлю на полная перерисовка, применить, и вуаля! Никаих полос! Как бы оформить это действие в скриптик... |
DarkDigger |
|
Темы:
30
Сообщения:
133
Участник с: 26 декабря 2012
|
Подключил другой монитор (элт), ставил разные частоты 60-85 герц, разрешения, толку ноль... Как же включить тебя v-sync??? |
DarkDigger |
|
Темы:
30
Сообщения:
133
Участник с: 26 декабря 2012
|
Я правильно понимаю, что проблема с полосами только у избранных? Может дело в этом (строчка из /var/log/Xorg.0.log) (II) NVIDIA(GPU-0): Display (ViewSonic VA2216w-4 (CRT-0)) does not support NVIDIA Нет, не в этом дело... Поменял видюху на 8800, поменял монитор, всё едино... |
DarkDigger |
|
Темы:
30
Сообщения:
133
Участник с: 26 декабря 2012
|
Я кажется начал понимать суть проблемы (я первый?) Грохнул kwin, и запустил заново: [digger@digger ~]$ ps | grep kwin 513 ? 00:00:05 kwin [digger@digger ~]$ kill -3 513 [digger@digger ~]$ kwin QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GTX 660/PCIe/SSE2 OpenGL version string: 4.3.0 NVIDIA 325.15 OpenGL shading language version string: 4.30 NVIDIA via Cg compiler Driver: NVIDIA Driver version: 325.15 GPU class: Unknown OpenGL version: 4.3 GLSL version: 4.30 X server version: 1.14.2 Linux kernel version: 3.10.7 Direct rendering: yes Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes Virtual Machine: no kwin(837) KWin::GlxBackend::present: It seems you are using the nvidia driver without triple buffering You must export __GL_YIELD="USLEEP" to prevent large CPU overhead on synced swaps Preferably, enable the TripleBuffer Option in the xorg.conf Device For this reason, the tearing prevention has been disabled. See https://bugs.kde.org/show_bug.cgi?id=322060 [digger@digger ~]$ cat /etc/X11/xorg.conf.d/20-nvidia.conf Section "Device" Identifier "Default nvidia Device" Driver "nvidia" Option "NoLogo" "True" Option "TwinView" "off" Option "TripleBuffer" "1" Option "GLXVBlank" "True" EndSection Так вот если сначала сделать export __GL_YIELD="USLEEP", а затем запустить kwin, то всё ок!!!! Осталось только понять как добавлять переменные окружения автоматически :) Разобрался: В файл /etc/profile дописать 2 строчки export __GL_YIELD="USLEEP" export KWIN_TRIPLE_BUFFER=1 |
Raff |
|
Темы:
0
Сообщения:
4
Участник с: 16 марта 2013
|
Браво! Долго искал решение этой проблемы. |
vdemin |
|
Темы:
54
Сообщения:
1615
Участник с: 24 января 2009
|
DarkDigger, спасибо за наводку! В вики говорят, что не надо прописывать обе переменные одновременно: https://wiki.archlinux.org/index.php/NVIDIA#Avoid_screen_tearing_in_KDE_.28KWin.29 Обсуждение бага: https://bugs.kde.org/show_bug.cgi?id=322060 |