LINUX.ORG.RU

Сообщения nick87720z

 

Полноэкранное субпиксельное - теперь с резкостью

Продолжаю предыдущую тему.

Проблема с резкостью решилась слабым повышением контраста (ровно до уровня freetype). Думаю, за этим можно и работать. Ещё бы железо позволяло :D (при одиночном проходе нагрузка утроена, до дискретки так и не дошёл).

Часть greyscale простыни из шейдера выкинул - синусы и билинейное не очень то и сдались, комфорт важнее CRT-шной ламповости.

Заодно обоину сменил (тоже 4k). На предыдущей оказались аберрации прямо по всему изображению.

Если что, этот скрин в нормальном масштабе (субпиксельная раскладка - горизонтальное RGB).
Исправить радугу возможно если ваша субпиксельная раскладка поддерживается fontconfig/freetype (только линейный RGB и её повёрнутые варианты). Для BGR - на 180 градусов, верт. RGB - вправо на 90, верт. BGR - влево на 90. Для всего остального (двухмерные раскладки какого-нибудь pentile или просто перестановки типа GBR/GRB, если такие вообще бывают) - ничего не поделать (а вообще, у меня свербит как-нибудь запилить в шейдер и pentile и даже старый добрый CRT, у которого сетка регулярная, но кишит тригонометрией).

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

https://github.com/yshui/picom/wiki/Shader-Shop#fullscreen-subpixel-antialiasing

 , , , subpixel,

nick87720z
()

Субпиксельное... и полноэкранное!.. тёплый ламповый графониум для X11 (ШГ или нормально?)

Нет, это не сон.

Если что, на скриншоте — горизонтальный rgb. Если у вас другая субпиксельная раскладка — попробуйте повернуть на 90, 180 или 270 градусов.

На днях случайно заметил опцию в xrandr --scale. По сути, это делает виртуальный монитор с разрешением помноженным на физическое. И тут в голове завертелось.

Поставил свежий picom, у него как раз есть опция –window-shader-fg для экспериментального glx (в egl не завелось). Ставлю масштаб дисплея в 3x3. Этакий виртуальный HiDPI. К сожалению, билинейное работает максимум на 2x, начиная с 3x — скатывается в ближайшее. Впрочем, другого и не надо. Как я надеялся, ускорение не отваливается (прям как я мечтал — виртуальный HiDPI монитор, только тут — сразу из коробки).

Подсовываю Picom шейдер, который выполняет размытие — по сути, ту самую lcd фильтрацию, как у freetype. Хотя что-то не так. Если freetype lcdfilter=lcdlight (базовая коробка 3x, в теории — для субпиксельной больше не надо), то шрифты — чётче некуда, хотя с default тоже нормально. У меня — если с коробкой 3x3, то по чёткости недотягивает даже до default.
Или дотягивает? Непонятно.

Пока игрался, решил засунуть и другие фильтры:

  • коробка 3x3 в сером (при технике kawase — даже смысла в делении на поосевые этапы нет, и так и так 4 пиксела на один);
  • линейный шириной 5 и пара синусов (один с точечным сэмплированием на 5, другой — интегрированием, шириной 7).

Требуются OpenGL 3.3 + GLSL 3.3.

А ещё железо. Хорошее. Возможно игровое. У меня проц с Intel HD 3000, попробовал на нём glxgears. При нормальной работе без масштаба и в исходном размере 300x300 выдаёт 8000fps. После масшатаба (ещё без picom и вообще композитора) упал до 4000-5000, а как развернул… 15fps (steam чтоли поставить… дискретку ещё не запускал). Хотя тут ещё тротлинг из за перегрева. Если на холодном железе — 30fps может выдать, хотя со временем падает.

Picom — если без шейдера и размытия, то ещё нормально (тени почти не нагружают). С шейдером — смотря сколько окон в поле зрения. Вообще, он рассчитан на то, чтобы быть экранным, а не оконным. Там даже есть опция, чтобы пропускать 1/9 пикселей при одном проходе и 4/18 при двух. Сейчас — если её включить, то окна видны только если координаты кратны 3. В общем, вероятность видимости окна с этой опцией 1/9.

Ссылка на шейдер:
https://github.com/yshui/picom/wiki/Shader-Shop#fullscreen-antialiasing-subpixel-filtering-support

 fsaa, , ,

nick87720z
()

RSS подписка на новые темы