Точно у Вас на амд VDPAU acceleration включился
VO: [vdpau] 1280x720 => 1280x720 H.264 VDPAU acceleration
В выводе есть?
Или VO: [vdpau] 1280x720 => 1280x720 Planar YV12
т.е. не включился...
В выводе есть?
Есть.
VO: [vdpau] 640x360 => 640x360 H.264 VDPAU acceleration [zoom]
Все на много проще, запускаем то же видео с ключами
mplayer -vo vdpau -vc ffh264vdpau видео
если не работает, значит нет vdpau. Mplayer при этом ничего не подставляет, только то что указано.
mpv на клипе, что еще добавить?
Using hardware decoding (vdpau).
VO: [vdpau] 640x360 vdpau
А так с divx/xvid, который будет с vdpau только на проприетаре нвидиа. Что печально :(
Using software decoding.
VO: [vdpau] 720x560 yuv420p
mpv в ПРА64 на amd и xvid не включает vdpau?
1. при чем тут пра64, когда я на нем и не проверял.
Warning: The ffodivxvdpau codec is only supported by the most recent series of NVIDIA hardware.
2. На счет xvid не уверен, может и вырезано что лишнее, но с vdpau оно не идет как и divx.
Поэкспериментировал с воспроизведением ютуба
Один и тот же ролик. % - cpu в htop
pra-roll 180101 tint2-g
CPU~Dual core Intel Core2 Duo T9500 (-MCP-) speed/max~1229/2601 MHz
Graphics: Card: NVIDIA G84M [GeForce 8600M GT]
Display Server: X.org 1.19.6
drivers: nvidia (unloaded: modesetting,fbdev,vesa,nouveau)
nVidia-340.106-k4.15.4-pf4_64-sf04.pfs
palemoon-p-27.9.0-1_64-sf01.pfs - 45%
firefox-esr-gtk2-52.5.3-1-180101-sf01.pfs - 36%
qmplay2-qt5-18.04.01-180101-sf01.pfs - 56%
mpv-light-0.27.0-17-180101-sf03.pfs - 50%
В mpv url скопирован из qmplay2
В qmplay2 vdpau включается - см скрин (приоритет декодеров). Весьма удобен для просмотра ютюба
В ффоксе по дефолту в about:config:
media.hardware-video-decoding.enabled;true
В пмуне такого параметра нет вообще
Интересно, а как дела со свободным amdgpu по сравнению с catalyst ? Никто не юзает?
Пока жду сборку на 2011 с Али, отрыл старый комп со встройкой.
Card: Advanced Micro Devices [AMD/ATI] RS880 [Radeon HD 4200]
Display Server: X.Org 1.19.6 drivers: ati,radeon (unloaded: modesetting,fbdev,vesa)
Resolution: 1920x1200@59.95hz
OpenGL: renderer: AMD RS880 (DRM 2.50.0 / 5.1.4-porteus, LLVM 5.0.1) version: 3.3 Mesa 17.3.1
С Mesa удалось запустить послдедний хромиум с аппаратным декодированием видео. Ютюб стал вфулхд показывать без фризов, в отличии от palemoon и basilisk.
chrome://gpu/
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Hardware accelerated
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Disabled
[b]Video Decode: Hardware accelerated[/b]
Viz Display Compositor: Enabled
Viz Hit-test Surface Layer: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
adjust_src_dst_region_for_blitframebuffer
clear_pixel_unpack_buffer_before_copyteximage
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
decode_encode_srgb_for_generatemipmap
disable_post_sub_buffers_for_onscreen_surfaces
disable_software_to_accelerated_canvas_upgrade
dont_remove_invariant_for_fragment_input
exit_on_context_lost
force_cube_map_positive_x_allocation
force_int_or_srgb_cube_texture_complete
init_texture_max_anisotropy
regenerate_struct_names
remove_invariant_and_centroid_for_essl3
scalarize_vec_and_mat_constructor_args
use_virtualized_gl_contexts
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
Problems Detected
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Linux AMD drivers incorrectly return initial value of 1 for TEXTURE_MAX_ANISOTROPY: 348237
Applied Workarounds: init_texture_max_anisotropy
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Linux AMD drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
Linux ATI drivers crash on binding incomplete cube map texture to FBO: 518889
Applied Workarounds: force_cube_map_positive_x_allocation
Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
adjust src/dst region if blitting pixels outside framebuffer on Linux AMD: 664740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
AMD drivers in Linux require invariant qualifier to match between vertex and fragment shaders: 659326, 639760
Applied Workarounds: remove_invariant_and_centroid_for_essl3, dont_remove_invariant_for_fragment_input
Mesa driver GL 3.3 requires invariant and centroid to match between shaders: 639760, 641129
Applied Workarounds: remove_invariant_and_centroid_for_essl3
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Decode and Encode before generateMipmap for srgb format textures on Linux AMD: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Software to Accelerated canvas update breaks Linux AMD: 710029
Applied Workarounds: disable_software_to_accelerated_canvas_upgrade
Force integer or srgb cube map texture complete on Linux AMD: 712117
Applied Workarounds: force_int_or_srgb_cube_texture_complete
AMD Linux driver crashes when copyTexImage2D is called with PIXEL_UNPACK_BUFFER set to an uninitialized buffer: 859998
Applied Workarounds: clear_pixel_unpack_buffer_before_copyteximage
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Context flush ordering doesn't seem to work on AMD: 914976
Applied Workarounds: use_virtualized_gl_contexts
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Version Information
Data exported 2019-12-13T20:20:06.200Z
Chrome version Chrome/78.0.3904.70
Operating system Linux 5.1.4-porteus
Захотел запустить на проприетаре, но дрова не взлетели. Ни на одном ядре. 4.4, 5.
Развитие Mesa впечатляет завезли openGL 4.5 для моей встройки. Релиз Mesa 19.3.0, OpenGL 4.5 для GPU AMD (r600, radeonsi)- https://www.opennet.ru/opennews/art.shtml?num=52024 (https://www.opennet.ru/opennews/art.shtml?num=52024)
Я так понял в пра выше 17 Mesa не планируется, то хотябы свободные попробывать https://cgit.freedesktop.org/xorg/driver/xf86-video-amdgpu/ (https://cgit.freedesktop.org/xorg/driver/xf86-video-amdgpu/)
Я бы все потестил и проприетар.
Заметил прикол, на запущеном хромиуме и видео на паузе
vblank_mode=0 glxgears
22921 frames in 5.0 seconds = 4584.108 FPS
22908 frames in 5.0 seconds = 4581.439 FPS
22729 frames in 5.0 seconds = 4545.689 FPS
22943 frames in 5.0 seconds = 4588.560 FPS
22928 frames in 5.0 seconds = 4585.442 FPS
Закрытый хромиум.
11467 frames in 5.0 seconds = 2293.185 FPS
11357 frames in 5.0 seconds = 2271.273 FPS
11491 frames in 5.0 seconds = 2298.116 FPS
11425 frames in 5.0 seconds = 2284.763 FPS
Да я согласен, в палемуне можно и этот костыль использовать. Но лог smplayer говорит, что поддержка VDPAU в R600 не работает. Даже после установки месы.
Failed to open VDPAU backend libvdpau_r600.so: cannot open shared object file: No such file or directory
[vo/vdpau] Error when calling vdp_device_create_x11: 1
Failed to open VDPAU backend libvdpau_r600.so: cannot open shared object file: No such file or directory
[vo/vdpau] Error when calling vdp_device_create_x11: 1
[vo/xv] Warning: this legacy VO has bad quality and performance, and will in particular result in blurry OSD and subtitles. You should fix your graphics drivers, or not force the xv VO.
VO does not support requested hardware decoder, or loading it failed.
AO: [alsa] 48000Hz stereo 2ch float
VO: [xv] 1920x1080 yuv420p
Лог не сразу увидел.
Failed to open VDPAU backend libvdpau_r600.so: cannot open shared object file: No such file or directory
Узнаем какому пакету принадлежит эта либа и ставим его:
sudo pkgfile -u && sudo pkgfile -s libvdpau_r600.so
live@prar-1811 ~ % sudo pkgfile -s libvdpau_r600.so
extra/mesa-vdpau
[vo/vdpau] Error when calling vdp_device_create_x11: 1
Mpv по умолчанию пытается подхватить vo/vdpau и при неудаче запускает с vo/xv.
sudo pacman -Sy mesa-vdpau
:: Обновление баз данных пакетов...
2a-any не устарел
core 126,2 KiB 93,6 KiB/s 00:01 [###################################] 100%
extra 1643,2 KiB 444 KiB/s 00:04 [###################################] 100%
community 4,3 MiB 1024 KiB/s 00:04 [###################################] 100%
art-aur не устарел
revenge_repo 38,9 KiB 263 KiB/s 00:00 [###################################] 100%
herecura 62,7 KiB 129 KiB/s 00:00 [###################################] 100%
ошибка: не удалось получить файл 'archlinuxcn.db' из repo.archlinuxcn.org : Connection timed out after 10001 milliseconds
ошибка: не удалось обновить archlinuxcn (ошибка в библиотеке загрузки)
pra6407extra не устарел
ошибка: failed to synchronize all databases
А если так mpv --vo=vdpau URL
Если сработает, прописать в ~/.config/mpv/mpv.conf (если его нет, создать пустой и прописать):
vo=vdpau
live@pra6408:~$ mpv --vo=vdpau https://www.youtube.com/watch?v=oQOjbUuY7Us
Playing: https://www.youtube.com/watch?v=oQOjbUuY7Us
(+) Video --vid=1 (*) (h264 1920x1080 29.970fps)
(+) Audio --aid=1 --alang=eng (*) 'DASH audio' (opus 2ch 48000Hz) (external)
Subs --sid=1 --slang=ru 'vtt' (webvtt) (external)
AO: [alsa] 48000Hz stereo 2ch float
VO: [vdpau] 1920x1080 yuv420p
AV: 00:00:12 / 00:10:10 (1%) A-V: 0.000 Cache: 10s+3MB
Странно, вроде пишет, что есть но проц грузит, как без него.40-50%
В Smplayer 8-9% этот же ролик.
Покурил вики, нашел нужный ключ запуска. Теперь можно выкинуть smplayer.
live@pra6408:~$ mpv --hwdec=vdpau https://www.youtube.com/watch?v=oQOjbUuY7Us
Playing: https://www.youtube.com/watch?v=oQOjbUuY7Us
(+) Video --vid=1 (*) (h264 1920x1080 29.970fps)
(+) Audio --aid=1 --alang=eng (*) 'DASH audio' (opus 2ch 48000Hz) (external)
Subs --sid=1 --slang=ru 'vtt' (webvtt) (external)
AO: [alsa] 48000Hz stereo 2ch float
Using hardware decoding (vdpau).
VO: [vdpau] 1920x1080 vdpau[yuv420p]
AV: 00:00:21 / 00:10:10 (3%) A-V: 0.000 Dropped: 6 Cache: 10s+6MB
без ключа hwdec=vdpau декодить не будет, будет просто писать что VO: [vdpau] 1920x1080 yuv420p
,а с ключом появляется строчка : Using hardware decoding (vdpau).
Обновил и проверил VA-API mesa на
intel video. Добавил /etc/mpv/mpv.conf
mesa-ddr01-sf03.pfs (ftp://ftp.yandex.ru/puppyrus/ddr/ddr01/pfs-test/mesa-ddr01-sf03.pfs) - не работает. Почему я не понял . vainfo выдает непонятную ошибку. Может mesa13 такое еще не умела
Работает. Для интел не хватало либы
mesa-ddr01-sf04.pfs (http://mirror.yandex.ru/puppyrus/ddr/ddr01/pfs/mesa-ddr01-sf04.pfs)
Если нужно только (для игр и браузеров нужна полная mesa) HW ускорение в mpv : из mesa достаточно
xf86-video-intel (дает --vo=xv) + i965_drv_video.so (дает HW) c зависимостями.
Для свежих интел : iHD_drv_video.so . Свежие видяхи работают и с i965. Разницы не заметил
Проигрывать : mpv --vo=xv --hwdec=auto
xv ничем не хуже gpu по нагрузке на проц и пр.
xserver-xorg-video-intel-i965-d10-sf02.pfs (http://mirror.yandex.ru/puppyrus/lf/d10/pfs/xserver-xorg-video-intel-i965-d10-sf02.pfs)
xserver-xorg-video-intel-ihd-d10-sf02.pfs (http://mirror.yandex.ru/puppyrus/lf/d10/pfs/xserver-xorg-video-intel-ihd-d10-sf02.pfs)
Аналогично вероятно можно порезать и и для nv и ati . По той же схеме : xorg-video + dri .Не проверял
Проверил с nvidia
Нужен nouveau-fw-325.15-1-any.pkg.tar.xz (ftp://ftp.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/nouveau-fw-325.15-1-any.pkg.tar.xz)
Работает с mesa во всех дистрах с modeset и nouveau
C ati у меня не получилось нигде. Вывод в vdpau есть , но hw не включается
У кого-то получалось?
С radeon (http://forum.puppyrus.org/index.php?topic=19443.msg126213#msg126213) работает
Не работало в ddr и lfd10, т.к. либы libvdpau были от арча
В ddr заменил
mplayer-light-int-p-37553-sf03.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a/pra03/pfs-portable/mplayer-light-int-p-37553-sf03.pfs)
mpv-int-p-0.32-sf05.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a/pra03/pfs-portable/mpv-int-p-0.32-sf05.pfs)
celluloid-int-gtk3-p-0.19-sf04.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a/pra03/pfs-portable/celluloid-int-gtk3-p-0.19-sf04.pfs) - с vdpau не работает. Виснет или тормозит. решения не нашел. Уберу из исо
в lfd10 сделал хитрый запуск:
LD_LIBRARY_PATH="/usr/lib:/usr/lib/x86_64-linux-gnu:/opt/$p1/lib"
celluloid-int-gtk3-p-0.20_64-sf03.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/celluloid-int-gtk3-p-0.20_64-sf03.pfs)
mplayer-light-int-p-38184_64-sf05.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/mplayer-light-int-p-38184_64-sf05.pfs)
mpv-int-p-0.32.0.242_64-sf05.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/mpv-int-p-0.32.0.242_64-sf05.pfs)
smplayer-qt4-p-20.4.2_64-sf02.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/smplayer-qt4-p-20.4.2_64-sf02.pfs)
в ДДР01 ни один mplayer не дает vdpau на встроенной видяхе интел 4 генерации
A на 2 генерации
root@DDR01:mp4# inxi -G
Graphics: Card: Intel 2nd Generation Core Integrated Graphics Controller
Display Server: X.Org 1.19.2 driver: intel Resolution: 1920x1080@60.00hz
OpenGL: renderer: Mesa DRI Intel Sandybridge Desktop x86/MMX/SSE2
version: 3.3 Mesa 13.0.6
root@DDR01:mp4# uname -a
Linux DDR01 5.1.4-pf #1 SMP PREEMPT Fri May 31 08:15:18 MSK 2019 i686 GNU/Linux
работает, но проц грузит чуть больше xv
UPD.: Прежде чем решить, в чём тут дело, vainfo и vdpauinfo Вам в помощь:
https://wiki.archlinux.org/index.php/Hardware_video_acceleration_(Русский)#Проверка (https://wiki.archlinux.org/index.php/Hardware_video_acceleration_(Русский)#Проверка)
Сами прочитали? Есть решение проблемы?
Конечно! Я никогда не советую другим то, что не прочитал бы и не применил бы сам. Как Вы собираетесь знать, что у Вас аппаратно декодируется, а что нет, если только не узнаете нужный профиль и разницу между VA-API и VDPAU (первое предпочтительнее)??!
$ vdpauinfo
display: :0 screen: 0
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
API version: 1
Information string: OpenGL/VAAPI backend for VDPAU
$ vainfo
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_5
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.5 (libva 2.1.1.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 2.4.0.pre1 (2.3.0-21-ge60af21)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointStats
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointStats
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointStats
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
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD <--
Для WebM, например (YouTube стандарт). У меня также 4К приемлемо декодируется (на грани) ‒ тут правда да, OpenCL от второй карточки для mpv помогает. Следующий для меня, пока нереализованный, вариант - перекомпилить mpv с Vulkan поддержкой:
#/etc/environment
VULKAN_SDK_PATH=/usr
#ATISTREAMSDKROOT=/usr
CUDA_PATH=/usr
EXTRA_NVCCFLAGS="-L /usr/lib/x86_64-linux-gnu"
LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
VDPAU_DRIVER=va_gl
#VDPAU_DRIVER=nvidia
LIBVA_DRIVER_NAME=i965
#LIBVA_DRIVER_NAME=iHD
#LIBVA_DRIVER_NAME=vdpau
Сделал беглое сравнение свойств ядер, см. также AMDGPU (https://wiki.archlinux.org/index.php/AMDGPU):
maurom:
AMDGPU+ yes
exFAT yes
X32 yes
RT no
EasyOS:
AMDGPU yes
exFAT no
X32 yes
RT no
porteus:
AMDGPU+ yes
exFAT yes
X32 no
RT no
debian:
AMDGPU+ yes?
exFAT yes
X32 yes
RT yes
Arch Linux:
AMDGPU yes
exFAT yes
X32 no
RT no (отдельно)