Вышел терминальный эмулятор Kitty 0.49 с аппаратным ускорением через GPU. В релизе появилась поддержка пользовательских шейдеров, что открывает дорогу к самым разным визуальным эффектам прямо внутри терминала. С их помощью можно делать анимированные фоны, подсветку активной панели, эффекты движения курсора, анимацию кликов мышью и другие визуальные настройки на базе GPU.
Что касается производительности, разработчик утверждает, что реальная пропускная способность новой версии выросла на 15-35% в зависимости от нагрузки.
Нагрузки с большим объёмом текста получили несколько оптимизаций. Обработка больших массивов текста при буфере прокрутки, превышающем размер кэша CPU, ускорилась примерно на 35%, а нагрузки с преобладанием ASCII дают прирост около 50%. Тексты с большим количеством Unicode стали быстрее примерно на 15%.
Декодирование UTF-8 тоже оптимизировали с помощью SIMD. Разбор ASCII ускорился примерно на 20%, а многобайтовый текст примерно на 50% как на системах x86, так и на ARM. В Kitty также появился декодер с AVX-512, который даёт ещё 75% прироста для многобайтового текста на поддерживаемых процессорах, включая Intel Ice Lake и новее, а также AMD Zen 4 и более поздние.
Ускорились и нагрузки с большим количеством escape-последовательностей: пропускная способность выросла примерно на 30% благодаря изменениям в работе с блокировками ввода и разбором параметров CSI. Дополнительные оптимизации SIMD для печатного ASCII дают ещё около 10% на больших объёмах простого текста.
В графике альфа-смешивание для изображений графического протокола и кадров анимации стало в 2-3,5 раза быстрее, а альфа-маски глифов используют те же векторизованные примитивы композитинга. Kitty кэширует результаты шейпинга HarfBuzz для повторяющихся коротких фрагментов текста, что сокращает лишний пересчёт при перерисовке.
Помимо производительности, в Kitty 0.49 добавили несколько новых параметров конфигурации и улучшений удобства. Опция window_border_radius включает скруглённые границы окна, а remap_modifiers позволяет модификаторам вести себя как другие модификаторы.
В раскладке Splits появилась необязательная политика пропорционального размера, которая сохраняет вручную заданные пропорции окон при добавлении, удалении или перемещении панелей. У полосы прокрутки появился режим scrolled-or-hovered, при котором она показывается во время прокрутки или при наведении указателя на её область.
Расширили возможности удалённого управления: новая команда kitten @ screenshot умеет делать точные попиксельные PNG-снимки всего окна ОС, вкладки или отдельного окна kitty. Ещё одна команда, kitten @ set-os-window-title, меняет заголовок уже открытого окна ОС.
Выделенный текст теперь можно перетаскивать в другие окна и приложения, если настроено соответствующее действие мыши. Вертикальные вкладки лучше справляются с многострочными заголовками, а remember_window_size запоминает, было ли окно развёрнуто. Сеансы сохраняют и восстанавливают не только активную раскладку, но и остальные.
Наконец, в Linux устранили заметные подвисания при отображении экранов с большим числом символов, отсутствующих в основном шрифте. Также исправили несколько проблем, связанных с Wayland, в том числе обработку высокоточного колеса прокрутки и обмен буфером обмена между экземплярами kitty в изолированных контейнерах.
Подробности перечислены в списке изменений.





Пока нет комментариев. Будьте первым!