nvidia blob + linux - а аппаратное ускорение где?

Тему про аппаратное ускорение я поднимал два года назад (но на интеле, и проблемы там были немного другие), поднимаю и сейчас.
Имеется KDE5, nvidia-381.22-2, 4.11.2-1, видео GTX1060, камушек i5-2300.
С vdpau всё нормально:
$ vdpauinfo
display: :0   screen: 0
API version: 1
Information string: NVIDIA VDPAU Driver Shared Library  381.22  Thu May  4 00:21:02 PDT 2017
...
С vdpau драйвером для vaapi тоже:
$ vainfo
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG4Simple            : VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    : VAEntrypointVLD
      VAProfileH264Baseline           : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD

Суть проблемы очень проста — ужасающая загрузка камня при:
— воспроизведении видео > 720p (что в chromium, что в mpv, vlc).
Здесь главная непонятка -- откуда 25% загрузка всех четырёх ядер при воспроизведении h264 через MPV, например.
mpv '/..../.......' --hwdec=vdpau --vo=vdpau
...
(+) Video --vid=1 (*) '...' (h264 1440x1080)
...
AO: [pulse] 48000Hz stereo 2ch s32
Using conversion filter.
VO: [vdpau] 1440x1080 yuv420p
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
Вроде никаких ошибок нет. Но жрёт 25% от каждого ядра. Если запускать с --hwdec=no, то загрузка абсолютно аналогична, из чего делаем вывод, что аппаратное ускорение не работает абсолютно. Кодек, повторюсь, h264, поддержка его аппаратного ускорения есть в vdpau.
Результаты теста (картинка очень тормозила во время теста). Не знаю, что это значит, но пусть будет хоть какое-то документально зафиксированное значение.
qvdpautest 0.5.2++
Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz
NVIDIA Corporation GP106 [GeForce GTX 1060 6GB]

VDPAU API version : 1
VDPAU implementation : NVIDIA VDPAU Driver Shared Library  381.22  Thu May  4 00:21:02 PDT 2017

SURFACE GET BITS: 1100.87 M/s
SURFACE PUT BITS: 1490.77 M/s

MPEG DECODING (1920x1080): 651 frames/s
MPEG DECODING (1280x720): 1253 frames/s
H264 DECODING (1920x1080): 447 frames/s
H264 DECODING (1280x720): 1141 frames/s
VC1 DECODING (1440x1080): 900 frames/s
MPEG4 DECODING (1920x1080): 565 frames/s

MIXER WEAVE (1920x1080): 7342 frames/s
MIXER BOB (1920x1080): 12877 fields/s
MIXER TEMPORAL (1920x1080): 3863 fields/s
MIXER TEMPORAL + IVTC (1920x1080): 2410 fields/s
MIXER TEMPORAL + SKIP_CHROMA (1920x1080): 5101 fields/s
MIXER TEMPORAL_SPATIAL (1920x1080): 2314 fields/s
MIXER TEMPORAL_SPATIAL + IVTC (1920x1080): 1686 fields/s
MIXER TEMPORAL_SPATIAL + SKIP_CHROMA (1920x1080): 2701 fields/s
MIXER TEMPORAL_SPATIAL (720x576 video to 1920x1080 display): 5597 fields/s
MIXER TEMPORAL_SPATIAL + HQSCALING (720x576 video to 1920x1080 display): 4252 fields/s

MULTITHREADED MPEG DECODING (1920x1080): 633 frames/s
MULTITHREADED MIXER TEMPORAL (1920x1080): 3239 fields/s

— проигрывании динамического html5 контента в chromium
http://fhtr.org/gravityring/sprites.html
https://codepen.io/eltonkamami/full/ECrKd
Эти две штучки сжирают 35-50% всех ядер камня.
С chromium я вообще ничего не понимаю. Аппаратное ускорение на странице about:gpu написано, что работает (хотя для этого пришлось сделать --ignore-gpu-blacklist). Видео на youtube показывается vp9, насколько мне удалось прогуглить -- vp9 аппаратно не декодируется не то, что у нас, но даже под оффтопиком. И вообще, аппаратное ускорение видео в chromium для linux не поддерживается без костылей, судя по всему.
Провёл следующий эксперимент: поставил chromium-dev-vaapi (из китайской репы) и поставил туда плагин h264ify, который принудительно заставляет youtube отдавать h264 (это лишает [email protected], но сейчас это не так важно). Так вот, в логах он вроде бы подхватывает vaapi, открывает vdpau-бэкэнд, но даже в [email protected] на h264 загрузка камня 30-40%.
Кто-нибудь занимался этим вообще? Не пойму, что тут не так. Уже даже грешу на относительно новизну карточки, но модели уже год как-никак.
Если что-то забыл, то потом дополню пост.
marlock, у меня стоит mplayer-vaapi из AUR
Загрузка проца- 4%
С mpv- 10-15%. Забил на mpv.
Мои флаги в chrome:
--enable-native-gpu-memory-buffers --flag-switches-begin --enable-canvas-2d-dynamic-rendering-mode-switching --enable-display-list-2d-canvas --enable-es3-apis --enable-experimental-canvas-features --enable-fast-unload --force-gpu-rasterization --enable-webgl-draft-extensions --enable-zero-copy --force-pnacl-subzero --ignore-gpu-blacklist --num-raster-threads=4



Загрузка в youtube на 720- не более 10%
И да. Не на всех ядрах такая загрузка.

Может у Вас как-то криво определяется vdpau. Попробуйте добавить переменную в окружение как здесь
Morisson, с аналогичным железом?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Ну почти. core i5 + nvidia
Да не, наврал. У меня ж ноут)) Optimus
https://market.yandex.ru/product--palit-geforce-gtx-1060-1506mhz-pci-e-30-6144mb-8000mhz-192-bit-dvi-hdmi-hdcp/14021259
с видюхой за ~18к такой нагрузки на проц в принципе быть не должно.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Решил углубиться. Поставил ffmpeg-full-nvenc, чтобы получить cuda-акселерацию. Запускаю тот же файл и получаю в выводе:
[h264_cuvid @ 0x7fbbd98e6da0] ctx->cvdl->cuvidCreateDecoder(&ctx->cudecoder, &cuinfo) failed -> CUDA_ERROR_NOT_SUPPORTED: operation not supported
[h264_cuvid @ 0x7fbbd98e6da0] cuvid decode callback error
[h264_cuvid @ 0x7fbbd98e6da0] ctx->cvdl->cuvidDecodePicture(ctx->cudecoder, picparams) failed -> CUDA_ERROR_INVALID_HANDLE: invalid resource handle
[h264_cuvid @ 0x7fbbd98e6da0] cuvid decode callback error
Соответственно, ускорения никакого нет. Уже и strace делал, и gdb смотрел, и ldd проверял все библиотеки, которые могут быть связаны -- всё чисто. Просто не работает и всё. Впервые с таким сталкиваюсь.
UPD: ого!
mplayer -vc ffh264vdpau
-- процессор не используется вообще! Только вот картинки нет, только звук :) Копаюсь дальше.
UPD2: с другим видеофайлом всё работает ок. очень странно, оба h264.
С оффлайном разобрался, теперь работает и cuda, и vdpau, всё замечательно.
Теперь главный вопрос: chromium.
Попробовал я скачать [email protected] с youtube в виде vp9, mpv через cuda играет его прекрасно, 6% загрузка камня. Значит, всё же дрова декодируют аппаратно vp9.

Так как же заставить chromium использовать ffmpeg с cuda-кодеком для видеоконтента на веб-страницах?
marlock
Так как же заставить chromium использовать ffmpeg с cuda-кодеком для видеоконтента на веб-страницах?
Здесь: chrome://flags смотрели?
In Tux We Trust
 
Зарегистрироваться или войдите чтобы оставить сообщение.