LINUX.ORG.RU

KDE в Kubuntu 18.04 мерцает, дергает, мигает, flickering (intel + amd видеокарты)

 


2

3

Думаю многие кто пользуется KDE читали темы о том как KDE дергает (гуглить по запросу kde flickering). Можно даже ролики на youtube посмотреть.

Одно из решений проблемы мерцания это включение в настройках Display and Monitor > Compositor > Xrandr вместо OpenGL. Но тогда начнется tearing (разрывы изображения при быстрой смене картинок). Это потому что в OpenGL вертикальная синхронизация (VSync) убирала этот тиринг.

Решение проблемы tearing при Xrandr это включение Tear Free технологии видеокарт. По умолчанию в Ubuntu (Kubuntu в этом случае) она отключена. Включается правкой Xorg.conf файла.

Как вариант вместо правки Xorg.conf можно создать отдельные файлы /etc/X11/xorg.conf.d/20-intel.conf для intel или /etc/X11/xorg.conf.d/20-radeon.conf для AMD (radeon драйвер, для дрйвера amdgpu файл другой).

Содержание файл настроек 20-intel.conf:

Section "Device"
 Identifier  "Intel Graphics"
 Driver      "intel"
 Option      "AccelMethod"  "sna"
 Option      "TearFree"    "true"
EndSection

Полный список «скрытых» опций видео драйверов: для intel и для amd и для amd (amdgpu)

Тут начинается другая проблема KDE не видит дискретную видеокарту, если в файле Xorg.conf есть какие-то опции для интегрированной видеокарты. Это связано с особенностями инициализации оборудования. Чтобы дискретную видеокарту система стала использовать нужно помимо настроек TearFree для интегрированной видеокарты вручную дописать настройки для дискретной (файл /etc/X11/xorg.conf.d/20-radeon.conf):

Section "Device"
 Identifier "Radeon"
 Driver "radeon"
 Option "DRI" "3"
EndSection
Можно даже дополнительно привязать в Xorg.conf (записав настройки не в отдельные файлы, а напрямую в файл Xorg.conf) видеокарты к их виртуальным экранам чтобы запускать командой DRI_PRIME=N, где N это номер видеокарты (виртуального монитора). Но и это не поможет! Потому что в этом случае KDE по какой-то причине не будет отрисовывать рабочий стол и возможно некоторые другие элементы, хотя если вслепую запустить какой-нить софт, то на его окно можно переключиться по alt+tab.

Мы подошли к сути, причине. Долгое время я думал, что такие мерцания случайны. Потому что они проявлялись не всегда. И вот я наконец понял в чем причина конкретно у меня. При установке Steam он устанавливает x32 (32 битную) версию mesa драйвера. И вот после этого начинаются все проблемы. Причем даже после установки x32 mesa драйвера такие мерцания проявляются не всегда (поэтому и не было понятно, что виноват он). Уверенности в том, что причина в драйвере, а не в том что Steam делает что-то еще у меня нет. Но в том, что виноват Steam я уверен.

Кто хочет эксперементов с включение TearFree можете почитать вики archlinux.

Это больше информативное сообщение. Я очень долго искал информацию по решению проблемы в англ. сегменте, никакого решения для intel + amd не нашел. Но если кто-то что-то знает, то я был бы благодарен, если напишите совет.

Интеловский иксовый драйвер же на мороз выкидывали за непотребностью, не?

Вроде нынче настоятельно рекоммендуют вместо него использовать modesetting, у меня вот так, причем последнее редактирование от 30 апреля 16 года, так что еще со старого ноута тянется (повезло, что BusID не поменялся лол)

Section "Device"
        Identifier "Intel Graphics"
        Driver "modesetting"
        Option "AccelMethod" "glamor"
        Option "TearFree" "True"
        Option "DRI" "3"
        BusID "PCI:0:2:0"
EndSection

Ну и в кедах рендеринг через OpenGL 3.1 стоит

infine ()
Последнее исправление: infine (всего исправлений: 1)

При установке Steam он устанавливает x32 (32 битную) версию mesa драйвера. И вот после этого начинаются все проблемы.

ахтыжгад. точно же(( спасибо
вчера появилось. я думал драйвер плохой оказался. до стима идеально работал

darkenshvein ★★★★★ ()

Проблема была уже рассказана на OS 2.0 есть даже зависимость от груба , по этому надо смотреть бекапы прошлого груба сохраняются под _1 _2 и так далее

anonymous ()

Переход на Xrandr это не решение, а обход проблемы. С включением Xrandr кроме тиринга начинаются тормоза (всё рисуется на проце) и пропадает половина эффектов. Это совсем не решение.

По поводу Стима - он один из потенциальных виновников, дело не в 32х битной месе, а в каких-то проблемах опенжиеля. Не только стим, но и вайн и некоторые игры нативные и приложения с опенжиелем, всё может спровоцировать. да так, что закрыв приложение и даже рестартанув квин сохраняется риск на ровном месте схватить моргалинг.

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

И тем не менее, если хочется использовать KDE + Steam, то Xrender вместо OpenGL это единственное стабильное решение при данной проблеме. А с WINE лично у меня таких проблем не было.

То есть понятно, что это медленнее, не зря же OpenGL это аппаратное ускорение. Но как заставить разработчиков решить эту, практически основную серьезную проблему, то ли KDE, то ли Qt? Этой проблеме уже 3+ года и из всех DE она есть только в KDE. По мне она настолько серьезна, что им следовало бы переписать большую часть рисовальщика окошек, если понадобиться.

Эта проблема фактически переводит KDE в список нестабильных DE. Если бы я работал над чем-то серьезным, то ставил бы mate, просто чтобы на месте окон в важный момент не возникли черные квадраты.

Кстати встречал решения:

  • Отключить PSR для intel (через опции ядра в GRUB) - не сработало (хотя первое время после отключения может показаться, что все ОК, т.к. проблема проявляется не всегда)
  • Отключить и/или включить vsync для nvidia - проверить не могу, у меня такой видеокарты нет.
  • Включить или отключить triple buffer (тройной буферизации) через опции (переменные среды) в KDE - писали, что KDE может неверно определить наличие поддержки triple buffer и нужно чтобы состояние включено/отключено для triple buffer в видеодрайвере совпадало с состоянием в KDE. Не сработало, вообще ноль эффекта.

Как временно помогающие, хотя и не всегда решение можно использовать клавиши shift+alt+F12.

Еще заметил, что если после начала мерцания менять OpenGL 2 на OpenGL 3, то проблема иногда временно исчезает. При это не важно меняется версия 2 на 3 или наоборот, просто сама смена МОЖЕТ временно избавить от проблемы.

anonymous ()

Еще вариант. Попробуйте установить stable версию mesa после установки Steam из X-SWAT репозитория PPA. Это официальный репозиторий от Ubuntu. В настройках KDE поставьте OpenGL v.2 для Compositor.

sudo add-apt-repository ppa:ubuntu-x-swat/updates
sudo apt update
sudo apt full-upgrade

И KDE поставьте backport версию с официального PPA:

sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update
sudo apt full-upgrade

anonymous ()

Если у кого-то есть желание поиграть с настройками KDE, то смотрите https://community.kde.org/KWin/Environment_Variables для изменения переменных среды (в самом низу страницы инструкция)

Файл /plasma-workspace/env/kwin_env.sh, дайте ему права на доступ и вставляйте переменные в виде и перезагрузитесь:

export KWIN_TRIPLE_BUFFER=1
(как раз такая установка KWIN_TRIPLE_BUFFER предлагается в одном из несработавших вариантов решения проблемы, правда она для nvidia)

Если нужны срытые настройки KDE, то в файле: /home/<user>/.config/kwinrc

Если вдруг наткнетесь на статью о том, что проблема flickering в частоте обновления экрана, то знайте, что это тоже не поможет. Но можете посмотреть параметры экрана:

xrandr
Текущий режим отмечен *, а рекомендованный +. Можете вручную установить FPS:
[Compositing]
MaxFPS=144.0

Доку по xrandr смотреть тут https://wiki.archlinux.org/index.php/xrandr

anonymous ()

Кстати, а мне помог способ для intel + amd найденный на каком-то форуме:

  1. Создаем файл /plasma-workspace/env/kwin_env.sh и даем ему права на запуск.
  2. Добавляем в этот файл строку: export KWIN_TRIPLE_BUFFER=1 и перезагружаемся.
  3. В настройках Display and Monitor > Compositor ставим OpenGL 3, vsync ставим Full Screen Repaint

Не факт, что он рабочий 100%, но пока все ОК. Да, KDE будет ругаться, что Full repaint снижает производительность, но иначе вообще работать нельзя.

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

Дополню. После установки vsync в Full repaint может понадобиться перезагрузка, до нее мерцания всеравно могут продолжаться.

И при смене Compositor может понадобиться обратно установить vsync в Full repaint и перезагрузиться. Т.е. в текущей версии KDE Full repaint слетает при изменении Compositor.

anonymous ()

Осторожно это решение может сломать или замедлить систему! Метод для intel видеокарт!

Суть этого метода: мы удаляем или блокируем видеодрайвер intel. И система переходит на встроенный в ядро видеодрайвер modesetting. Можно не удалять драйвер intel, а явно указываем, что система должна использовать modesetting в Xorg для видеокарты intel.

Возможные проблемы: если будут проблемы с modesetting, то система перестанет рисовать интерфейс и через командную строку придется восстановить видео драйвер Intel или вручную в Xorg указать, что нужно использовать modesetting (т.к. удаление видеодрайвера intel не приведет к переходу на modesetting). Тут человек описывает как это сделать. intel по прежнему быстрее modesetting, с modesetting возможны артефакты и другие проблемы.

Источник этого возможного решения: https://askubuntu.com/a/814226

Посмотреть текущий драйвер можно так (после текста «Kernel driver in use:»):

lspci -k | grep -EA3 'VGA|3D|Display'

Первый вариант. Суть в том, что после удаления intel драйвера (если у вас вообще intel карта) видеокарта начинает использовать встроенный в ядро linux видео драйвер под названием modesetting.

sudo apt-get purge xserver-xorg-video-intel
И перезагрузиться.

Второй вариант (не переход на modesetting). Переустановить драйвер intel и посмотреть что будет:

sudo apt-get update
sudo apt-get install --reinstall xserver-xorg-video-intel xserver-xorg-core
sudo dpkg-reconfigure xserver-xorg
И перезагрузиться.

Третий вариант. Указать в Xorg явно использовать modesetting вместо intel (инструкцию по редактированию Xorg ищите сами или смотрите тут)

Подробнее о modesetting можно почитать тут: https://wiki.archlinux.org/index.php/kernel_mode_setting

Сравнение производительности modesetting с другими видеодрайверами можно посмотреть тут: https://www.phoronix.com/scan.php?page=article&item=intel-modesetting-201...

anonymous ()

Дополнение к теме. На моей системе Kubuntu 18.04 LTS c APU intel после установки Steam начались мерцания. После установки параметра vsync (вертикальной синхронизации) в compositor в значение «full repaint» они пропали. И не появлялись... до того как я не установил плеер mvp из репозитория Ubuntu, запустил, а потом подвигал его окошко.

После запуска mvp мерцания возвращаются и держаться до момента как в Compositor опять установить vsync (вертикальной синхронизации) в значение «full repaint» и перезагрузиться.

Заметил закономерность. Есть какая-то связь с мерцанием и запуском GTK приложений в KDE. Если окно GTK на переднем плане (напр окошко «Открыть файл»), то KDE приложения на заднем фоне чаще начинают мерцать.

Пока мысль такая. mvp скорее всего дергает какую-то функцию систему содержащую баг, после этого состояние где-то внетри систем отрисовки меняется и держится до переустановки параметров Compositor и перезагрузки. Есть подозрение даже, что не Steam виноват сам по себе, а возможно то, какие функции Steam использует, т.е. он мог вызвать ту же забагованную функцию, что и mvp.

anonymous ()

Подтверждаю. Дело не в самом Steam, а в функции которые он использует. Поставил чистую Kubuntu без Steam. Установил mpv плеер. Он вызвал мерцания.

anonymous ()