TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
commit -m "better"

25 Jul, 22:20

Открыть в Telegram Поделиться Пожаловаться

#imgui #shell

Запилил с фабулой очень крутую штуку, AFAIK сейчас так никто не делает, и делать не умеет.

TL;DR - эмулятор KMS в userspace.

Современные wayland композиторы тестируют почти end to end - от потока команд до реальной картинки, которую должен увидеть пользователь.

За одним маленьким исключением - никто не знает, что на самом деле пользователь увидит, потому что то, что он увидит, определяет не только картинка, но и настройки самого output (встроенный экран, внешний монитор, и так далее) - sdr/hdr, цветовое пространство, яркость, разрешение и частота, vsync, edid, и так далее, и так далее.

Вот, насколько я знаю, современные композиторы (как и я раньше) тестируются в headless mode - до рендеринга картинки в bitmap, а дальше все.

Но это очень важная часть - она включает в себя подключение и отключение output на лету, смену его режимов, failure injection (на твою коробочку села кошка, и статика с нее ебнула в hdmi кабель, true story), на все это надо уметь реагировать корректно.

Чтобы это тестировать end to end, мы с фабулой запилили эмулятор этой state machine - https://github.com/pg83/imway/blob/main/kms_fake.cpp

// Everything KMS that device_kms.cpp needs, modeled in userspace: the
// object/property tables, atomic commits with page-flip events on a real
// pipe, framebuffer and GEM bookkeeping. Rendering stays on the real GPU;
// syncobj ioctls forward to a companion render node so explicit sync is
// backed by genuine kernel fences. The point is a scriptable state machine:
// tests can flip the connector or make commits fail on demand.

Фактически, перехватили парочку сисколлов, https://github.com/pg83/imway/blob/main/kms_fake.cpp#L1209-L1251, и дали тестовой машинерии управлять этой state machine.

Конечно, сразу нашли кучу багов, связанных c connect/disconnect, и прочим HDR настройками.

Уверяю, что сейчас ни один другой композитор так не тестируется.
imway/kms_fake.cpp at main · pg83/imway
Contribute to pg83/imway development by creating an account on GitHub.

3.1k 0 11 18 80
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot