Bug 34452

Summary: VA-API Chromium patch broken
Product: Sisyphus Reporter: mikhailnov <m>
Component: chromiumAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: cas, legion, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   

Description mikhailnov 2018-01-13 02:11:07 MSK
Есть планшет Chuwi Hi12. ALT p8/Sisyphus + Ubuntu 17.10.
В Chromium в Ubuntu работает аппаратное ускорение декодирования видео в youtube, если установить расширение h264ify, иначе процессор перегружен программным декодированием. 

Суть патча в портировании аппаратного ускорения декодирования через VA-API на GPU Intel из ChromeOS в Linux. https://packages.altlinux.org/ru/Sisyphus/srpms/chromium/patches/0022-Enable-VAVDA-VAVEA-and-VAJDA-on-linux-with-VAAPI-only.patch

В Ubuntu установлен патченный Хромиум из репозитория https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-dev , VA-API работало и во времена 63-ей версии, и сейчас на 65-ой работает.

Исходник патча (это для версии 65, для 63 см. историю git): https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/enable_vaapi_on_linux_2.diff С этим патчем у меня работает то, что надо.

С Альтовским патчем не работает аппаратное ускорение. Вывод vainfo полностью совпадает на Ubuntu и ALT, в т.ч. версия. В альте в консоль пишет:
[16615:16615:0113/014611.147057:ERROR:vaapi_wrapper.cc(807)] Failed putting surface to pixmap VA error: the requested function is not implemented

Есть небольшая вероятность, что у меня различаются настройки и флаги Хромиума в двух ОС, но вроде бы одинаковые.

При неработе патча в chrome://media-internals для видео с Youtube указано FFmpeg Decoder для H264 и VP9 Decoder без расширение h264ify. С работающим аппаратным ускорением там GPU_*.

Вручную включить по умолчанию выключенный chrome://flags#enable-accelerated-video

Собственно, в Альте даже не вижу такого флага, хотя в спеке патч включен.
Comment 1 Alexey Gladkov 2018-01-15 15:41:19 MSK
(В ответ на комментарий №0)
> Исходник патча (это для версии 65, для 63 см. историю git):
> https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/enable_vaapi_on_linux_2.diff
> С этим патчем у меня работает то, что надо.

Можно попробовать сделать сборку с этим патчем. Правда я проверить это всё равно не могу т.к. chromium не умеет загружать правильный драйвер для wayland.
Comment 2 mikhailnov 2018-01-15 15:45:02 MSK
Если соберете, то я проверю работу.
Comment 3 mikhailnov 2018-01-15 15:45:40 MSK
А как понять "не умеет загружать правильный драйвер на wayland"?
Comment 4 Alexey Gladkov 2018-01-15 16:37:44 MSK
(В ответ на комментарий №3)
> А как понять "не умеет загружать правильный драйвер на wayland"?

chromium загружает libva-x11.so, а под wayland'ом нужен libva-wayland.so или libva-drm.so. Вся эта логика есть, но только для ozone.
Comment 5 Alexey Gladkov 2018-02-05 00:57:50 MSK
Попробуйте 

#199586 TESTED #2 [test-only] sisyphus chromium.git=64.0.3282.119-alt1
Comment 6 mikhailnov 2018-02-05 18:38:16 MSK
Можно ссылку на сборку?
Comment 7 Alexey Gladkov 2018-02-05 21:40:54 MSK
(В ответ на комментарий №6)
> Можно ссылку на сборку?

Не понял вопроса.
Comment 8 mikhailnov 2018-02-05 21:51:37 MSK
Здесь версия https://packages.altlinux.org/ru/Sisyphus/srpms/chromium
Где бинарный rpm пакет указанной новой сборки?
Comment 9 Alexey Gladkov 2018-02-05 22:02:20 MSK
(В ответ на комментарий №8)
> Здесь версия https://packages.altlinux.org/ru/Sisyphus/srpms/chromium

Я понятия не имею, что это, но надеюсь, что это то что в сизифе сейчас.

> Где бинарный rpm пакет указанной новой сборки?

добавьте репозиторий в конфиг apt:

rpm http://git.altlinux.org/repo/199586/ x86_64 task

и поставьте оттуда chromium.
Comment 10 Alexey Gladkov 2018-02-06 13:29:00 MSK
Уже в сизифе.
Comment 11 Alexey Gladkov 2018-02-06 15:31:08 MSK
Насколько я понимаю, этот баг исчерпан и теперь в альте chromium не работает также как и в убунту.
Comment 12 mikhailnov 2018-02-06 15:54:05 MSK
Вы с https://bugzilla.altlinux.org/show_bug.cgi?id=34513 не перепутали? Я патченный Хромиум на Альте позже проверю.
Comment 13 Alexey Gladkov 2018-02-06 17:34:19 MSK
(В ответ на комментарий №12)
> Вы с https://bugzilla.altlinux.org/show_bug.cgi?id=34513 не перепутали? Я
> патченный Хромиум на Альте позже проверю.

Мне кажется не перепутал. В #34513 если будет фикс от апстрима, то можно будет его применить и закрыть.

Здесь же я не знаю чем могу помочь. На Xorg при старте ошибок нет. Возможно не хватает чего-то в системе. Лично у меня в wayland никакие сторонние патчи для VA-API продолжают не работать.

Я склюняюсь оставить все эти эксперименты с сторонними патчами на текущей стадии до тех пор пока апстрим не примет их. Обеспечить нормальную поддержку VA-API в условиях кустарных патчей, гуляющих в интернете, просто нереально.
Comment 14 mikhailnov 2018-02-08 00:22:47 MSK
Не работает. H264 по-прежнему декодируется программно. Вывод vainfo нормальный. Иксы.
$ rpm -qa | grep libva
libva-1.8.3-alt2.S1.x86_64
libva-utils-1.8.3-alt1.x86_64
libva-driver-intel-1.8.3-alt2.S1.x86_64
Когда по ошибке удалил xorg-dri-intel и работал через llvmpipe, $ chromium поругался на отсутствие драйвера VA-API. В нормальных условиях вывода в консоль нет, как и в оригинале в PPA для Ubuntu, но там GpuVideoDecoder работает

libva-driver-intel либо вообще не было из коробки (а нужен для плееров, во многих из которых VA-API качественно работает), либо потерялся при обновлении до Сизифа. Стартеркит GNOME 12.2017

В Росе с этим патчем собрали, и у меня заработало

$ vainfo
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 1.8.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
Comment 15 mikhailnov 2018-02-08 00:23:13 MSK
http://bugs.rosalinux.ru/show_bug.cgi?id=8655