ansible@focal und softhddrm

  • Hallo,


    mal eine Frage. Es gibt ja hier schon einige, die softhddrm am Laufen haben.

    Evtl. hat mal jemand eine Schritt-für-Schritt-Anleitung. Denn immer wenn ich mich mal daran versucht habe, hat es nicht geklappt.

    Es mussten ein paar Serives deaktiviert werden (stand in einem anderen Thread), aber hierbei hat der VDR bei mir nicht mehr gestartet, es gab irgendwelche Fehlermeldungen mit pulseaudio.

    Irgendwo las ich, dass User noch in irgendwelche Gruppen hinzugefügt werden mussten. Dann war was mit libva usw.

    Schön wäre halt mal eine kleine Anleitung, was alles zu tun ist. Als Kernel läuft bei mir der 5.12


    Grüße.

    Markus

  • hier mal die wichtigsten Punkte


    für softhddrm mit UHD/HLG HDR


    - Kernel 5.12.1

    - iHD Treiber (z.B. 21.2.1) für die VAAPI Umgebung

    - MESA Treiber 21.2.x

    Code
    1. sudo add-apt-repository ppa:oibaf/graphics-drivers
    2. sudo apt-get update

    Plugin Softhddrm ohne libplacebo erstellen (wichtig denn für einen normales TV Gerät gibt es hier nicht viele bis keine Vorteile)


    Bsp. Makefile


    sofhhddrm.conf


    dann nach dem VDR-Start in den Plugineinstellungen im Bereich "Video" die UHD Farbwiedergabe aktivieren und dann passt alles mit HLG HDR


    Grüße

    cinfo

    (VDR) NUC11PAHi5 * BM2LTS * DD NET S2 Max * NC * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2021)* (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65GX9LA

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

  • Danke, ich schau mal, wenn ich wieder Zeit zum Basteln bekomme :)

    reichen die Versionen auch aus, oder zwingend die aus deinem vainfo?

    softhddrm nehme ich von den yavdr-Paketen (weiss jez nicht, ob die mit oder ohne libplacebo gebaut sind)

    Die softdrm.conf hatte ich bisher nie angefasst, quasi genauso leer belassen wie die softhdvaapi.conf

  • ist da min. reicht also


    Quote

    Die softdrm.conf hatte ich bisher nie angefasst, quasi genauso leer belassen wie die softhdvaapi.conf


    das geht dann nicht (leer), nutze zum Start die Werte von oben


    Grüße

    cinfo

    (VDR) NUC11PAHi5 * BM2LTS * DD NET S2 Max * NC * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2021)* (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65GX9LA

  • Gibt es hier einen yaVDR-User der softhddrm auf dem NUC mit den experimental Quellen von seahawk1986 laufen hat? Ich bräuchte da mal Info wie man da zu einem Bild/Ton kommt...

  • Wie verpasse ich einer Ubuntu 20.04.2 Basis am besten Kernel 5.12.x? Mit HWE Installation kommt Kernel 5.8.x


    Möchte gerne, per yavdr ansible, fertige vdr Pakete hernehmen. softhddrm also ohne X, da könnte eine headless installation funktionieren?

    Nächste Hürde wird die fehlende Startlogik vom Frontend sein...


    iHD und MESA bekomme ich hin.

  • Hm,


    alles etwas schräg --> das wäre der einfachste Weg den Kernel zu pflegen


    Den Kernel (Version) immer von hier laden und in ein Verzeichnis seiner Wahl speichern.


    Dann mit

    Code
    1. sudo dpkg -i *.deb

    installieren.


    Hier das Bsp. der beiden Dateien für den Kernel 5.12 Version 10

    https://kernel.ubuntu.com/~ker…10.202106101259_amd64.deb

    https://kernel.ubuntu.com/~ker…10.202106101259_amd64.deb


    wer den Headers benötig bzw. haben möchte dann noch

    https://kernel.ubuntu.com/~ker…1210.202106101259_all.deb

    https://kernel.ubuntu.com/~ker…10.202106101259_amd64.deb


    cinfo

    (VDR) NUC11PAHi5 * BM2LTS * DD NET S2 Max * NC * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2021)* (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65GX9LA

  • Hi,

    kurzer Bericht über softhddrm auf AMD und was geht, bzw. noch nicht.

    Meine Hardware: AMD ryzen 5650GE (Ich habe mir die neue APU eingebildet)


    Ziel: Neuer UHD ready vdr mit HDR output.


    Was habe ich gemacht:

    i) focal-server installiert. (Damit ich kein X Server Heckmeck habe)

    ii) von tuxinvader kernel 5.15.2 installiert (mainline ging nicht mehr, da libc Konflikt) https://launchpad.net/~tuxinva…chive/ubuntu/lts-mainline

    ii) mesa Treiber installiert von http://ppa.launchpad.net/oibaf/graphics-drivers/ubuntu

    iii) von Seahawk's vdr-2.5.6 repository vdr installiert (war wichtig: vdr in group render eingefügt)

    iv) Dem jojo61 sein git geklont und softhddrm (ohne lib placebo) kompiliert und installiert.

    (DRM = 1, LIBPLACEBO = 0)


    Fehlermeldungen so weit:


    i) [drm] Unknown EDID CEA parser results.

    Ich habe einen BenQ UDH 4k Monitor, Windows und MacOS haben keine Probleme HDR Inhalte anzuzeigen.

    Bei meinem Kernel setup kommt immer "HDR emulated" also 8 bit.

    Das wird auch durch: cat /sys/kernel/debug/dri/0/HDMI-A-1/output_bpc bestätigt.

    Ich vermute ein bug im Treiber amdpgu?


    ii) softhddrm startet und ich bekomme:


    FindDevice: open /dev/dri/card0: amdgpu

    Connector >HDMI-A-1< is connected

    ID 7 of METADATA in Connector 78 connected 1

    Mode 0 3840x2160 Rate 60

    Use Mode 0 3840x2160 Rate 60

    [FindDevice] Plane id 40 crtc_id 0 possible_crtcs 8 possible CRTC 76 type primary plane

    [FindDevice] Plane id 45 crtc_id 0 possible_crtcs 4 possible CRTC 73 type primary plane

    [FindDevice] Plane id 50 crtc_id 0 possible_crtcs 2 possible CRTC 70 type primary plane

    [FindDevice] Plane id 55 crtc_id 67 possible_crtcs 1 possible CRTC 67 type primary plane

    [FindDevice] Plane id 60 crtc_id 0 possible_crtcs 255 possible CRTC 67 type overlay plane

    [FindDevice] Plane id 65 crtc_id 0 possible_crtcs 1 possible CRTC 67 type cursor plane

    [FindDevice] Plane id 68 crtc_id 0 possible_crtcs 2 possible CRTC 70 type cursor plane

    [FindDevice] Plane id 71 crtc_id 0 possible_crtcs 4 possible CRTC 73 type cursor plane

    [FindDevice] Plane id 74 crtc_id 0 possible_crtcs 8 possible CRTC 76 type cursor plane

    [FindDevice] DRM setup CRTC: 67 video_plane: 40

    set CRTC 67 of Connector 78 aktiv

    mesa: for the --simplifycfg-sink-common option: may only occur zero or one times!

    mesa: for the --global-isel-abort option: may only occur zero or one times!

    mesa: for the --amdgpu-atomic-optimizations option: may only occur zero or one times!


    SetPropertyRequest: Unable to find value for property 'Colorspace'.



    Alles läuft erstmal ein paar Sekunden, dann fängt es an zu stottern und ich bekomme jede Menge:


    Fehler beim export VAAPI Handle

    WARN tntnet.worker - unexpected exception: accept4: errno 24: Too many open files


    @jojo61Hast Du eine Idee woran das liegen könnte?

    Oder andersrum gefragt: Was muss ich liefern, damit Du das beantworten könntest?

    Mein Eindruck ist, amdgpu ist gar nicht so kaputt. (Immerhin läuft es ja ca. 10 Sekunden)

  • Fehler beim export VAAPI Handle

    WARN tntnet.worker - unexpected exception: accept4: errno 24: Too many open files

    Da gebe ich wohl die VAAPI Handle nicht richtig zurück. Und dann hat er bald keine freien Handle mehr.

    Versuche es spasseshalber mal mit der libplacebo. Ich habe den Treiber heute angepasst damit die 175 wieder geht.

  • stegro du könntest zum testen in video.c um die Zeile 2598 herum mal folgendes ändern:


    alt:

    Code
    1. status =
    2. vaExportSurfaceHandle(decoder->VaDisplay, (VASurfaceID) (uintptr_t) frame->data[3],
    3. VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, VA_EXPORT_SURFACE_READ_ONLY | VA_EXPORT_SURFACE_SEPARATE_LAYERS,
    4. &desc);
    5. if (status != VA_STATUS_SUCCESS) {
    6. printf("Fehler beim export VAAPI Handle\n");
    7. return;
    8. }
    9. vaSyncSurface(decoder->VaDisplay, (VASurfaceID) (uintptr_t) frame->data[3]);

    neu:

    Code
    1. vaSyncSurface(decoder->VaDisplay, (VASurfaceID) (uintptr_t) frame->data[3]);
    2. status =
    3. vaExportSurfaceHandle(decoder->VaDisplay, (VASurfaceID) (uintptr_t) frame->data[3],
    4. VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, VA_EXPORT_SURFACE_READ_ONLY | VA_EXPORT_SURFACE_SEPARATE_LAYERS,
    5. &desc);
    6. if (status != VA_STATUS_SUCCESS) {
    7. printf("Fehler beim export VAAPI Handle\n");
    8. return;
    9. }

    Evtl. ist der Fehler ja das die Surface noch nicht fertig ist wenn ich versuche das Handle zu bekommen.


    Wenn das nicht hilft dann stelle ich dir eine Testversion mit debug zur Verfügung.

  • jojo61 Habe ich gemacht. Leider keine Änderung.


    Schicke mir die Testversion, ich debugge gerne!


    Update:

    Sorry, dass ich nochmal dilettiere:

    Ich habe mir Deinen Code angeschaut Deinen Hinweis gesehen, dass Du eventuell den Handle nicht richtig zurückgeben hast.

    Ich habe dann Dein Close statement vor dem return eingefügt, sorry reine Experimental Informatik.


    decoder->fds[index * Planes] = desc.objects[0].fd;

    glBindTexture(GL_TEXTURE_2D, 0);

    eglMakeCurrent(eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

    EglCheck();

    for (int n = 0; n < Planes; n++)

    close(desc.objects[n].fd);

    return;


    Aber das Problem ist erst einmal weg! Ich bekomme den Fehler nicht mehr und das Bild ruckelt auch nicht.

    Macht das Sinn?

  • for (int n = 0; n < Planes; n++)

    close(desc.objects[n].fd);

    Ja das macht Sinn. Aber ich mache den close erst später und da nur den ersten Filedescriptor. Beim Intel Vaapi sind beide Descriptoren gleich weswegen ich nur den ersten zu mache. Das scheint bei AMD anders zu sein. Ich baue dir mal eine Version die beides zu macht (so wie dein Patch) nur an der richtigen Stelle. Wenn das klappt dann muss ich mal sehen wie ich das allgemeingültig für Intel und AMD einbaue. Version kommt morgen hier als Anhang.

  • jojo61 habe ich gemacht. Es sieht super aus.


    Das bekomme ich als Output, nachdem ich den vdr von der command line gestartet habe:


  • Prima, dann werde ich es einchecken. Die Mesa Meldungen sagen mir nichts und die kannst du wohl ignorieren.

    Das es das Property "Colorspace" nicht gibt liegt an der DRM implementierung. Ist aber auch eher unkritisch. Wenn die Farben bei HDR/HLG ok sind, dann kannst du das auch ignorieren.


    Damit habe ich zum ersten mal das Feedback das es auch mit AMD läuft. Super

  • Prima, dann werde ich es einchecken. Die Mesa Meldungen sagen mir nichts und die kannst du wohl ignorieren.

    Das es das Property "Colorspace" nicht gibt liegt an der DRM implementierung. Ist aber auch eher unkritisch. Wenn die Farben bei HDR/HLG ok sind, dann kannst du das auch ignorieren.


    Damit habe ich zum ersten mal das Feedback das es auch mit AMD läuft. Super

    Ich hatte es gestern auf eine Intel NUC getestet und auch hier läuft die neue video.c ohne Fehler

    (VDR) NUC11PAHi5 * BM2LTS * DD NET S2 Max * NC * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2021)* (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65GX9LA

  • Ich habe die libplacebo175 paketiert und die Plugins in den PPAs aktualisiert. Bitte vom vdr-plugin-softhdvaapi-opengl wieder auf das normale vdr-plugin-softhdvaapi umsteigen, falls das jemand noch installiert hat.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)