softhddevice mit AMD Ryzen

  • Hallo zusammen,


    ich versuche gerade einen Rechner mit AMD Grafik, mit VDR zum Laufen zu bekommen.

    Das Ziel ist für mich:

    1.) TV über VDR, stand heute max. HDTV

    2.) UHD Filme über Kodi, Decodierung über GPU (va-api)

    Code
    1. CPU: Topology: Quad Core model: AMD Ryzen 5 3400G with Radeon Vega Graphics bits: 64 type: MT MCP L2 cache: 2048 KiB
    2. Speed: 1252 MHz min/max: 1400/3700 MHz Core speeds (MHz): 1: 1252 2: 1252 3: 1252 4: 2293 5: 1252 6: 1252 7: 1252
    3. 8: 2294
    4. Graphics: Device-1: Advanced Micro Devices [AMD/ATI] Picasso driver: amdgpu v: kernel

    Im Prinzip bin ich schon viel weiter als erhofft, scheitere aber am OSD, der VDR ist aktuell unbedienbar.

    Das OSD ist riesig, vermutlich wird es nicht skaliert.

    Der Screenshot zeigt den gesamten Bildschirm!


    Basis ist Ubuntu focal Server

    - Aktueller Kernel und Firmware von hier: https://github.com/M-Bab/linux-kernel-amdgpu-binaries

    - mesa usw. von hier, habe ich probiert, hat aber keinen Unterschied gemacht: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

    - Danach VDR Installation per yavdr-ansible (focal)


    Ich habe jetzt, glaube ich, alle xineliboutput, softhd-/vaapi -devices durchprobiert.

    Teilweise startet VDR nicht mal oder nach wenigen Sekunden stottert das Bild nur noch.

    Aktuell das beste Ergebnis habe ich mit softhddevice von ua0lnj ( lnj ) , Screenshot siehe oben.

    Grub Einträge, x-org.conf alles egal (mit/ohne/Varianten), ich scheitere am OSD.

    Version:

    Code
    1. apt policy vdr-plugin-softhddevice
    2. vdr-plugin-softhddevice:
    3. Installiert: 0.7.0+git20200612-811-970a5e8-0yavdr0~focal

    Aktuelle Einstellungen:

    edid wird per Skript in intramfs kopiert


    Grub:

    GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt drm.edid_firmware=HDMI-A-1:edid/edid.HDMI-A-1.bin video=HDMI-A-1:e"


    50-softhddevice.conf:

    Code
    1. [softhddevice]
    2. -D
    3. -v va-api
    4. -w alsa-driver-broken


    xorg.conf, 20-amdgpu.conf: 20-amdgpu.conf.txt


    va-api scheint zu laufen, wird auch in Kodi angeboten und sieht gut aus:

    Hat jemand eine Idee?

    Was kann ich versuchen?

    Welche Informationen werden benötigt?


    Was mich etwas verwirrt: Das System beginnt bei "HDMI-A-1", xrandr aber bei "HDMI-A-0"


    Code
    1. for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done
    2. DP-1: disconnected
    3. HDMI-A-1: connected
    4. HDMI-A-2: disconnected


    Gruß

    Frank

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • va-api, because it shows me the best results.

    va-api-glx, is also not working and only show a yellow/orange video, but audio is OK ;-)


    Just tested it again with vdpau.

    The video look like slow motion and the sound is stuttering, sometimes I see a black screen.

    Parts from syslog:

    Installed vdpau stuff:

    Code
    1. dpkg -l | grep vdpau
    2. ii libvdpau-dev:amd64 1.3-1ubuntu2 amd64 Video Decode and Presentation API for Unix (development files)
    3. ii libvdpau1:amd64 1.3-1ubuntu2 amd64 Video Decode and Presentation API for Unix (libraries)
    4. ii mesa-vdpau-drivers:amd64

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Ok, the nice color is gone, but sound is stuttering and video sometimes black or green blocks.

    From syslog:

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • I don't think the "exa" will do somthing for me, but to fix the resolution to 1920x1080.

    Unfortunately, the SD TV is now bad, see the lower 1/3.

    I have deleted the setup.conf, now the OSD look better ;-)

    Fix xorg to 1920x1080 cann't be the solution, because I need UHD for kodi.

    HDTV 1920x1080:

    SDTV 192x1080:


    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • with vdpau and xorg=Modes "1920x1080_60"

    I see no stuttering, not for HDTV, nor for SDTV


    With vdpau and xorg=Modes "3840x2160_60" --> or without this entry, which mean resolution is = 3840x2160

    I see stuttering/black sceeen


    to complete this, if I change back to va-api, the OSD is not usable, as shown in first post and SDTV is distorted (melformed), even though it's 16:9.

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • Just 2 cents here, we still have 25/50Hz in Europe, so I wouldn't be surprised to see stuttering video on a 60Hz Desktop ... it may not stutter at FullHD resolution, because of enough computing power to compensate that difference ...


    And hence I don't expect a 720x576i video scaled to 3840x2160p might ever look like something you call good ... 🙄


    Did you ever try LibreELEC on your hardware? Just to check? Does it work with the CPU builtin Vega Graphics?

    HowTo: APT pinning

    The post was edited 1 time, last by fnu ().

  • I currently have the same problem with softhddevice on an Athlon 3000G (Zen+, Vega 3, GCN Gen 5). Vdpau only starts with "-w disable-ogl-osd", otherwise it crashes. Most of my programs are in 720p, they are all fine. But all other programs are either in 576i and one in 1080i. They all have the strange artifacts, which minixjr described. So the reason probably lies in the deinterlacer. Default is Bob. I changed that to weave and now at least the strange artifacts are gone.


    I use Arch-Linux with the repo from M-Reimer, so the software is up to date.


    With va-api the OSD scales with the resolution of the channel. When I scale it to 50% it is fine with 720p channels, but falls off the screen with 576i just as minixjr reported and it is tiny with 1080i. Otherwise va-api works well.


    What I like about softhddevice is the fast channel switching and I can put the pc to sleep, wake it up again and it just continues.

    ASROCK Deskmini A300+AMD Athlon 3000G (7-Watt-Spar-Mini aus C't 24/2019)+Arch-Linux+vdr4arch (vdr 2.4.1, Softhddevice 856fb47)

  • minixjr , you use 60Hz in you xorg.conf, can you try 50Hz on TV?

    Is there a way to see the load of the GPU with vdpau and vaapi?

    To understand why vdpau not cope.

    I will try to solve the problem with osd vaapi, when there will be free time, but I always thought that AMD broken vaapi in their GPU.

  • Did you ever try LibreELEC on your hardware?

    No, but Kodi with yavdr.

    It shows me the va-api options and a UHD sample is played without any problems.

    But I will try to check if va-api used or not.

    sample-Elysium.2013.2160p.mkv


    you use 60Hz in you xorg.conf, can you try 50Hz on TV?

    I'll try this, but first I'm looking for a programm to check the load of GPU or CPU.

    I found this ricks-amdgpu-utils, but the Ubuntu ppa version does not work for me..

    So I created a ticket and hope to get it running and get more information about what happens (or not)

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • I got it working with vdpau today.

    It looks like the 50/60Hz is not a problem because it actually runs at 60Hz.

    HDMI-A-0 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 621mm x 341mm3840x2160 60.00*+ 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98 24.00

    Maybe this was mesa related, which I have updated today. In fact, I cann't reproduce it anymore.
    I also have deleted the 20-amdgpu.conf. It looks like it's not necessary

    The SDTV problem could be solved, as mentioned by Andromeda.

    I changed that to weave and now at least the strange artifacts are gone

    My conclusion for softhddevice with AMD Ryzen is:

    - grub+edid stuff is needed if you start without powered on monitor

    - amdgpu kernel and current mesa with firmware is recommended

    - softhddevice.conf with -v vdpau and -w disable-ogl-osd

    - Change deinterlacer to something different than Bob


    lnj , if you have the time to do it, I would appreciate it very much, when you fix the va-api stuff.

    I think this will run very well with current AMD GPU/APU.


    I did a short test with vdr/vlc/mpv/kodi:


    Replay a HDTV recording with vdr, %CPU of process vdr with top

    softhddevice vdpau: approx. 12%

    softhddevice va-api: approx. 30% (we don't know what the scaling is doing here)


    Replay sample-Elysium.2013.2160p.mkv

    vlc 200% - without acceleration

    mpv 15% - uses va-api out of the box

    kodi 15-20% - uses va-api

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • I got it working with vdpau today.

    I assume this is using the open source VDPAU implementation.


    As far as I remember this doesn't provide the high quality post processing for the video stream, like the Nvidia drivers did provide it ... ? So what kind of deinterlacer does work?

    HowTo: APT pinning

  • Also try mpv, vlc with vdpau.

    Sorry, I don't get this working :(

    mpv and vlc are not working for me with vdpau.

    Maybe I do something wrong.

    vlc is looking for a file I don't have (and also apt-file don't know it, vdpau_drv_video.so)

    mpv_vdpau.txt

    vlc_vdpau.txt


    fnu , as I have now learned, only temporal is supported.

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV

  • minixjr Yes, that is what I also remember from my open source VDPAU tests with Nvidia cards a while ago. Nice that your vega graphics does work on a first step ... 👍🏻


    I'm courious if you can use denoise, sharpening and HQ scaling, whatever L1 means ...

    HowTo: APT pinning

  • and also apt-file don't know it, vdpau_drv_video.so

    My Debian tells me there is a package containing it.

    Maybe something is missing in Ubuntu.

    VDR User: 2127
    YaVDR-bionic , Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: Digital Devices Cine S2 V6
    YaVDR-bionic (24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: SkyTV Ultimate VIII, Miscellaneous: epgd, pihole

    YaVDR-bionic (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate IV

    YaVDR-focal (TEST), Mainboard: Gigabyte Aorus Pro B450, CPU: Ryzen 5 3400G, IPTV