LINUX.ORG.RU

nixos + libvdpau_radeonsi.so

 , , ,


0

1

Обновился до 26.05 и стало виснуть видео в mpv. Посмотрел логи, а там:

[ffmpeg] CUDA: Cannot load libcuda.so.1
[ffmpeg] CUDA: Could not dynamically load CUDA
[ffmpeg/video] mpeg4: No support for codec mpeg4 profile 15.
[ffmpeg/video] mpeg4: Failed setup for format vaapi: hwaccel initialisation returned error.
[ffmpeg/video] mpeg4: decoding to AV_PIX_FMT_NONE is not supported.
[ffmpeg/video] mpeg4: No support for codec mpeg4 profile 15.
[ffmpeg/video] mpeg4: Failed setup for format vaapi: hwaccel initialisation returned error.
[ffmpeg/video] mpeg4: decoding to AV_PIX_FMT_NONE is not supported.
Failed to open VDPAU backend libvdpau_radeonsi.so: cannot open shared object file: No such file or directory
vdpauinfo 
display: :0.0   screen: 0
Failed to open VDPAU backend libvdpau_radeonsi.so: cannot open shared object file: No such file or directory
Error creating VDPAU device: 1
locate libvdpau_radeonsi.so
/nix/store/9izf19cawajqfav9cj48qccr7mc2f5cb-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so
/nix/store/9izf19cawajqfav9cj48qccr7mc2f5cb-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so.1
/nix/store/9izf19cawajqfav9cj48qccr7mc2f5cb-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/9izf19cawajqfav9cj48qccr7mc2f5cb-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so.1.0.0
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so.1
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so.1.0.0
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so.1
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/avs0z400pcmwmvlgg3dzx1d68rbihf1m-steam-run-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so.1.0.0
/nix/store/cvz1bgx6vhgxi3cfn2bf6wfhfk0l1d5g-graphics-drivers/lib/vdpau/libvdpau_radeonsi.so
/nix/store/cvz1bgx6vhgxi3cfn2bf6wfhfk0l1d5g-graphics-drivers/lib/vdpau/libvdpau_radeonsi.so.1
/nix/store/cvz1bgx6vhgxi3cfn2bf6wfhfk0l1d5g-graphics-drivers/lib/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/cvz1bgx6vhgxi3cfn2bf6wfhfk0l1d5g-graphics-drivers/lib/vdpau/libvdpau_radeonsi.so.1.0.0
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so.1
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib32/vdpau/libvdpau_radeonsi.so.1.0.0
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so.1
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/klqrrvryc3lv9wd9x0kggr7gq1qraaij-steam-fhsenv-rootfs/usr/lib64/vdpau/libvdpau_radeonsi.so.1.0.0
/nix/store/l4myp7qn0q9bqgmkqq4vnnii22ql1r68-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so
/nix/store/l4myp7qn0q9bqgmkqq4vnnii22ql1r68-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so.1
/nix/store/l4myp7qn0q9bqgmkqq4vnnii22ql1r68-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so.1.0
/nix/store/l4myp7qn0q9bqgmkqq4vnnii22ql1r68-mesa-25.0.7/lib/vdpau/libvdpau_radeonsi.so.1.0.0
ls -1 /run/opengl-driver/lib/vdpau/
libvdpau_va_gl.so
libvdpau_va_gl.so.1
environment.sessionVariables = lib.mkIf (videocard == "ryzen7000_amdgpu") {
    LIBVA_DRIVER_NAME = "radeonsi";
    VDPAU_DRIVER = "radeonsi";
  };

  hardware = {
    graphics = {
      enable = true;          
      enable32Bit = true;
      # driSupport = true;  # <-- deprecated
      extraPackages = with pkgs; [
        mesa                  
        libGL                 
        libva-vdpau-driver    
        libvdpau-va-gl        
        libva
      ];
    };
  };

Если попробовать сделать так:

VDPAU_DRIVER=radeonsi VDPAU_DRIVER_PATH="/nix/store/cvz1bgx6vhgxi3cfn2bf6wfhfk0l1d5g-graphics-drivers/lib/vdpau/libvdpau_radeonsi.so" vdpauinfo 
display: :0.0   screen: 0
Failed to open VDPAU backend libvdpau_radeonsi.so: cannot open shared object file: No such file or directory
Error creating VDPAU device: 1
uname -a
Linux desktop-nixos 7.1.5-xanmod1 #1-NixOS SMP PREEMPT_DYNAMIC Tue Jan  1 00:00:00 UTC 1980 x86_64 GNU/Linux

Перечитал доку https://wiki.nixos.org/wiki/AMD_GPU Вроде ничего не поменялось

★★★★★

Последнее исправление: bryak (всего исправлений: 6)
Ответ на: комментарий от bryak

vaapi, на некоторых новых видеокартах уже через vulkan начали кодеки гонять, но, говорят, ещё сыроват. Если arm soc, то разные вариации v4l2 (m2m или request). У актуального блоба нвидий nvdec, но vulkan они тоже внедряют. В твоём случае советую убрать vdpau и все врапперы (libva-vdpau-driver libvdpau-va-gl), в мпв прописать просто hwdec, он сам определяет. Скорее всего, выберет vaapi. Для вывода советую vo=gpu-next или для экономии vo=dmabuf-wayland (если поддерживается железом и драйвером, на иксах не работает).

Merionet ★★
()
Ответ на: комментарий от etwrq

auto-safe не прокатывает. Может из-за шейдеров, которые юзают vdpau. В общем из терминала работает

mpv --no-config -vo=gpu-next -hwdec=auto-safe Black_47_2018_BDRip_MVO_by_Dalemake.avi

А если проставить auto-safe в конфиге - нет. Работает, если только явно vaapi указать

bryak ★★★★★
() автор топика

Так я не пойму, vdpau вообще отвалилось глобально и deprecated(имеется ввиду в иксах)? А через vaapi будет кодирование видео на gpu работать или нет? Что вообще не работает на vaapi, что работало в vdpau?

UPD1: включил в mpv hwdec=vulkan - работает

bryak ★★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 4)
Ответ на: комментарий от bryak

radeon[any] и vdpau вообще-то странное решение.
емнип, vdpau это про куртку только.
не знаю, но у меня универсальный конфиг для iXe/7900GRE/GTX1060 - gpu-next/auto-safe. как ни странно - УМВР)

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 1)
Ответ на: комментарий от bryak

В конфиге хватает просто hwdec , если mpv не очень старый. Он в терминал не пишет, что ему не понравилось? vainfo тоже помогает определить проблему.

Merionet ★★
()
Ответ на: комментарий от etwrq

radeon[any] и vdpau вообще-то странное решение.емнип, vdpau это про куртку только.

Vdpau работало последние 4 года на radeon

bryak ★★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от Merionet
vainfo
Trying display: wayland
Trying display: x11
libva info: VA-API version 1.23.0
libva info: User environment variable requested driver 'radeonsi'
libva info: Trying to open /run/opengl-driver/lib/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_23
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.23 (libva 2.23.0)
vainfo: Driver version: Mesa Gallium driver 26.1.5 for AMD Ryzen 9 7900X 12-Core Processor (radeonsi, raphael_mendocino, ACO, DRM 3.64, 7.1.5-xanmod1)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

Вроде всё ок. Но почему-то mpv пытается при auto-safe использовать vdpau

bryak ★★★★★
() автор топика
Ответ на: комментарий от Merionet

Потом можно смотреть лог

Так я в консольке команду ввел, как будто в конфиге две команды. Чтобы выявить - надо кусками комментировать конфиг и 100500 раз перезапустить mpv. Мне не очень хочется это делать 😁️

bryak ★★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от Merionet

ы (libva-vdpau-driver libvdpau-va-gl), в мпв прописать просто hwdec, он сам определяет. Скорее всего, выберет vaapi. Для вывода советую vo=gpu-next или для экономии vo=dmabuf-wayland (если поддерживается железом и драйвером, на иксах не работает)

на SIйки vaapi ложилось с болью и мучениями. в каком-то fglrx его сделали, и ох блин. насколько же оно к интелу прибито гвоздями.

ckotctvo
()

7.1.5-xanmod1 + vaapi + мой конфиг mpv намертво подвесил ядро

bryak ★★★★★
() автор топика

7.1.5-xanmod1 + vulkan + мой конфиг mpv намертво подвесил ядро

bryak ★★★★★
() автор топика

Я считаю, что нельзя называть релизы стабильными, если внутри них происходят такие штуки. Недавно firefox падал на «save page us», теперь mpv. Это не стейбл, а тестинг

bryak ★★★★★
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария