> В оконном режиме? :)На андроиде обычно используются "hardware overlays". Overlay - отдельный plane (в терминах интел). Туда и рисуется видео, аппаратный декодер может рисовать напрямую, но можно и программно. Не важно что в основном plane, окна или нет. Overlay можно программировать и на весь экран, и на часть. Менеджер окон/поверхностей может поддерживать иллюзию что оверлей - часть окна. Контроллер дисплея делает композитинг plane'ов, выдавая результат на экран. Это не поможет быстро закрасить прямоугольник. И формат данных дополнительных planes чаще всего yuv.
Wayland с его поверхностями и прочие surface flinger на такую логику хорошо укладываются. Иксы притягивают за уши, получается сложно и криво и работает кое-как.
> 720P
Наверное на достаточно мощном процессоре. И неплохо бы посмотреть сколько процентов Idle у системы и как это согласуется с CPU use плеера. Особенно в оконном режиме. Об этом ниже.
> именно xorg съедает 20% cpu, а не mpv? Если так - то пишите багрепорт.
Горбатого могила исправит. Xorg никто лишний раз трогать не хочет, а если произнести слово "tearing" - спецы Intel грустнеют. Всей толпой. И так уже много лет. Думаю понятно почему они в wayland заинтересованы.
> Если так все просто, то почему wayland медленнее xorg даже при выводе opengl?
Не очень понятно где эта медленность проявляется, на форониксе не видно.
Теоретически, если у нас GL, direct rendering и полноэкранное окно, а в иксах композитора нет или он достаточно умен для того чтобы уйти с дороги, в GL разница должна быть минимальной. В direct rendering ни xorg, ни wayland не участвуют. Запросы отправляются в MESA, та делает высокоуровневую работу (шейдеры, ...) и отправляет все в ядро через libdrm, а ядро - в GPU. Wayland и glx как-то задействуются только для задания параметров окна и/или выбора видеорежима и в этом случае они не основная статья расходов.
Если это НЕ fullscreen и/или композитор не отвалил, так что уже не чистый direct rendering - возможно множество вариантов. Это другая ситуация. Картинки надо так или иначе объединять. Иксы на это не заточены и скорее мешаются.
Вы, кстати, ваш плеер как запускали? Разница по загрузке процессора сильно ощущается в оконном режиме. Полноэкранный OpenGL мимо иксов и wayland пойдет, в GL стэк и DRI-инфраструктуру напрямую. А вот в оконном режиме иксы сильно тормозят.
> Нет окон - нет тиринга, вот и все волшебство :)
Ну еще бы, весь смысл direct rendering и был в том чтобы иксы вытряхнуть с пути. То-есть вы сами же и подтвердили что выкидывание иксов с пути потока команд рещает проблемы с тирингом. Я в этом и не сомневался - в самом DRI все по уму сделано, проблемы начинаются когда по пути оказываются иксы.