LINUX.ORG.RU

Снова kwin, vsync и глюки

 , , ,


0

2

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

Итак, старый глюк, с которым я уже встречаюсь больше года (если не два): при включённом vsync в самом kwin и включённой анимации в настройках «оформления» в KDE 4.x я имею реальные лаги при сворачивании/разворачивании окон, возможно где-то ещё они проявляются, но сильно бросаются в глаза именно здесь.

Я нашёл обходной путь: отключаем vsync (в настройках kwin) и анимацию (в настройках оформления oxygen) и глюков нет. Появившийся тиринг легко и быстро побеждается именем Xorg и призывом сил опции EXAVSync «on».

Однако это же не есть Ъ путь, тем более, что если это повторяется у меня на нескольких компах с разным железом - то это просто _ОБЯЗАНО_ повторяется у кого-то ещё.

Ладно, со своим ноутом и его 4570 ATi с GGDR2 я мог бы списать эти глюки на низкую производительность местной видеокарты. Но ведь на десктопе с 6970 та же фигня творится! А это уже ни в какие ворота не лезет, ибо что это за композитный менеджер, если он простыми эффектами нагружает видеокарту сильнее, чем какой-то там bf3 или dirt3 на ультре в FullHD?

В общем так: прошу (по возможности) проверить работу kwin с окнами, особенно при сворачивании и разворачивании. Пробовать включать vsync в kwin и выключать, также галка «анимация» в настройках оформления oxygen. И, естественно, сравнить результаты, что и как.

Если заметите ощутимую разницу - надо думать куда писать багрепорт.

У меня вышеозначенная ситуация встречается на 4570 и 6970, ATi/AMD, с опенсорс драйвером (на fglrx тоже с этим сталкивался).

Cast RussianNeuroMancer, как опытного человека в этих вопросах, - куда багрепорт слать? Баг драйвера? Баг kwin/KDE ?

Сегодня по возможности запилю видеосъёмку этого глюка и выложу на youtube.

★★★★

отключаем vsync (в настройках kwin)

Появившийся тиринг

Не помню точно, но например в Kubuntu после отключения KWin V-Sync тиринг не появляется, вероятно из-за включённого по-умолчанию EnablePageFlip.

побеждается именем Xorg и призывом сил опции EXAVSync «on»

Может быть использовать EnablePageFlip вместо EXAVSync?

на fglrx тоже с этим сталкивался

Сейчас проверил на Radeon HD 6620G - ниже 48 при сворачивании/разворачивании окон FPS не опускается. И это в довольно тяжёлых условиях - два монитора общей площадью 3520x1080, и включённый счётчик производительности (из-за которого KWin выполняет glXSwapBuffers каждый кадр, то есть обновляет содержимое двух экранов каждый кадр). Между используемыми эффектами (стандартный или волшебная лампа) и методами рендеринга (direct / indirect) разницы по скорости не обнаружил.

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

Может быть использовать EnablePageFlip вместо EXAVSync?

А оно будет лучше? Я, к сожалению, плоховато разбираюсь в разных опциях xorg.conf.d/, поэтому обычно просто засовываю EXAVSync и SwapbuffersWait (или как-то так). Разница в производительности есть?

ниже 48 при сворачивании/разворачивании окон FPS не опускается.

А визуально лаг есть?

Хотя странно, у меня при стандартных настройках (если ничего не ковырять), то при сворачивании/разворачивании FPS резко падает до 17-18 на момент анимации, и потом резко возвращается к 59. По эффектам - ЕМНИП, у меня меньше всего лагает именно «Волшебная лампа».

Про методы рендеринга: какой эффективнее? Или без разницы?

Так-то мне больше kde по душе, тем более, что там настройки для тачпада более ламповые (можно включить игнор тачпада при нажатии любых клавиш, кроме ctrl, alt, shift..), но пока стоит старый хард с ubuntu 12.04 и unity.

На десктопе арч с кедами из ветки 4.8.х вроде.

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

то при сворачивании/разворачивании FPS резко падает до 17-18 на момент анимации

А оно будет лучше?

Не знаю, проверьте.

А визуально лаг есть?

В случае fglrx не вижу лаг.

Про методы рендеринга: какой эффективнее? Или без разницы?

С KDE 4.10 на fglrx по-умолчанию будет использоваться direct, но его можно включить и сейчас.

RussianNeuroMancer ★★★★★
()

Подтверждаю, встречал эту проблему. Решилось установкой компиза и отказом от сворачивания окон.

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

Не знаю, проверьте.

Ок, вечером обязательно проверю.

В случае fglrx не вижу лаг.

Странно, у меня и в случае с fglrx был лаг.

А, direct только для fglrx. Печально.

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

Я на calculate тоже перешёл был на compiz, довольно фичасто. Но небольшой затык всё равно был даже на компизе (а он иногда игнорирует указываемые ему опции про vsync и прочее).

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

Ок, вот смотри, сейчас проверил xorg.conf, у меня оказывается уже был включён pageflip и EXAVSync, и был отключён SwapbuffersWait.

Сейчас такой вид:

ekzotech@snsv:~$ cat /etc/X11/xorg.conf.d/20-radeon.conf 
Section "Device"
	Identifier	"ATi 4570"
	Option		"EXAVSync"		"off"
	Option		"ColorTiling"		"on"
	Option		"EXAPixmaps"		"on"
	Option		"EnablePageFlip"		"on"
	Option		"SwapbuffersWait"	"off"
EndSection

По glxgears FPS равно 59, почти 60. НО есть тиринг.

Что я сделал не так?

ubuntu 12.04, unity, как уже выше говорилось.

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

Хм. Значит на опенсорс драйвере нет необходимости его ковырять. Ок.

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

Да. Более того, сейчас покопался с разными опциями (отключил всё и стал пробовать разные вариации). Включённый pageflip соло - тиринг есть. Потом ещё потыкал. В итоге даже при включённом EXAVSync был тиринг О_о. Ребутнул - вроде всё ок стало.

Но без опций EXAPixmaps, ColorTiling, EnablePageFlip имею адовые затыки при разворачивании окна (если поднести его к верней панели, т.н. «автораскрытие»). По 5 секунд окно разворачивалось во весь экран (из «несвёрнутого» положения). Видать ещё само unity глючит.

Сейчас всё включил (кроме SwapbuffersWait) - жить можно.

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

Тэкс. При SwapbuffersWait «off» у меня тиринг. Сам EXAVSync на это не влияет. Не очень сильный, но заметный, достаточно. Хм, вроде такого раньше не было (или не замечал). Дома на kde гляну, что-то мне аж интересно стало.

ekzotech ★★★★
() автор топика

Итак, вчера проверил в арчике.

Ситуация такая же: выключение SwapbuffersWait приводит к появлению тиринга, даже при включённом PageFlip и EXAVSync. Странно, как мне кажется.

profile = low в обоих случаях.

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

Имею ввиду оставить SwapbuffersWait, но попробовать middle.

Вот сейчас попробовал. Отключил SwapbuffersWait, выставил профиль middle (спасибо, я всегда пытался включить mid и получал ошибку). Тиринг есть. Отключил блюр в даше (ибо иначе подлагивает, как ни крути).

Не то, чтобы тиринг прямо дико заметен, но он есть.

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

Хм. Сейчас в настройках ccsm включил vsync в openGL и определение частоты обновления (в настройках composite). Не лагает, тиринга не вижу. Вообще ничего не понимаю.

Вообще, изначально всегда отключал vsync в ccsm, ибо в unity адовые лаги после установки (самое смешное - при самой установке всё ок, при загрузке в рабочую систему - такая шляпа). А теперь включил - и ничего не понимаю. =/

ekzotech ★★★★
() автор топика

извиняюсь за некропостинг, но у меня возникли в генте лаги с кедами. сразу после обновления месы в ~ на 9.0pre_<date> появились странные полоски, аля артефакты, вверху, по всей ширине экрана, и на панельке (плазма-панель, или как её назвать, не знаю), на ней вертикальные артефакты (ибо она у меня справа вертикально расположена). на 8.х не было такого. вчера обновил на пре_чего-то-там-конец-августа версию. эти глюки остались. появляются на сплеш-скрине кедовом. у меня он поделен на прогрессбар из 5 ячеек, так вот когда заполняется четвертая ячейка сразу вверху появляются полоски. после пятой ячейки появляется сам раб.стол и эти полоски вверху и на панельке.

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

видяха nvidia 630m и intel hd из i7 последнего поколения, тобишь optimus, мать его за ногу, когда же уже появятся официальные дрова с его поддержкой. все дрова последние, наисвежайшие.

глюки появились _именно_ после обновления месы на 9.0pre
игрался с eselect qtgraphicssystem и настройками в кедовом сеттингсманагере в разделе эффектов и там последняя вкладка. разницы нет, единственно на не растере и на не опенгл появляются залипания и тягучесть при передвижении окон, но полоски (артефакты) так и остаются. снова ухожу на растер и опенгл глюки с перемещением окон пропадают, все мягко и плавно движется, но эти полоски так и остаются.

может кто знает решение?

и подскажите как собрать месу последней 8.х ветки, вместо 9.0пре, нужно ли для этого хардкорно прописывать версию в accept_keywords или как это сделать, или просто прописать там чтобы пользовала именно amd64 вместо ~amd64?

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