softhdcuvid/softhdvaapi/softhddrm with hevc and UHD

  • Ich würde die empfehlen mal auf Vulkan 1.2.172 upzudaten.

    Das habe ich gemacht, keine Änderung.


    PS: hast du den Speicher für die GPU im Bios mal auf 1024 gestellt ?

    Stand auf 512 MB - mit 1024 MB auch keine Änderung.


    Dazu suchst du in den Quellen die Funktion pl_vulkan_create und machst prints rein um die stelle zu finden wo er auf den error return springt.

    Das sollte in src/vulkan/context.c sein. Leider musst du da alleine debuggen. Ist aber nicht so schwer wie es sich anhört.

    Irgendwo muss er ja mit Fehler rausspringen, nur wo ist die Frage und was ihm da nicht gefällt.

    Ich "spiele" gerade damit. Aber irgendwie habe ich einen Knoten im Hirn. Ich versuch's mal, zu beschreiben:

    Code: src/vulkan/context.c
    // Finally, initialize the logical device and the rest of the vk_ctx
        printf("HELLO 3\n");
        if (!device_init(vk, params))
            printf("HELLO 3b\n");
            goto error;
    
        pl_vk->gpu = pl_gpu_create_vk(vk);
        printf("HELLO 4\n");
        if (!pl_vk->gpu)
            goto error;

    Im log taucht HELLO 3 auf, HELLO 3b und 4 nicht. Also müsste doch hier was schief gehen, oder?


    Kommentiere ich das "goto error;" in der HELLO 3-Schleife mit // aus, kommt kein HELLO 3. Hä?


    Danke!


    Stefan


    P.s.: Ich hoffe, Du hast noch etwas Geduld mit mir...


    Das Log mit der obigen Änderung...

  • Code
    if (!device_init(vk, params))
                           printf("HELLO 3b\n");
                           goto error;

    Kenn mich zwar mit C nicht so aus, aber da das jetzt mehr als 1 Zeile im if ist, würde ich diese beiden sicherheitshalber einklammern {}!

    Code
    if (!device_init(vk, params)) {
            printf("HELLO 3b\n");
            goto error;
    }


    Zitat

    Im log taucht HELLO 3 auf, HELLO 3b und 4 nicht. Also müsste doch hier was schief gehen, oder?

    Ja, weil immer (außerhalb des ifs bzw. quasi danach) "goto error" ausgeführt wird.

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Code
    if (!device_init(vk, params)) {
            printf("HELLO 3b\n");
            goto error;
            }

    Bei mehr als einer Zeile ist die geschw. Klammer wichtig.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • 447377 Genau du musst geschweifte Klammern um das if machen. Bin gespannt wo der Fehler letztlich liegt.

    Zumindest wohl nicht im device_init sonst hättest du ja den Hello 3b gesehen. Auch wenn er danach dann doch zum error gesprungen ist wegen dem Klammerfehler.

  • Kenn mich zwar mit C nicht so aus, aber da das jetzt mehr als 1 Zeile im if ist, würde ich diese beiden sicherheitshalber einklammern {}!

    Bei mehr als einer Zeile ist die geschw. Klammer wichtig.

    Vielen Dank Euch beiden!



    @447377Genau du musst geschweifte Klammern um das if machen. Bin gespannt wo der Fehler letztlich liegt.

    Zumindest wohl nicht im device_init sonst hättest du ja den Hello 3b gesehen. Auch wenn er danach dann doch zum error gesprungen ist wegen dem Klammerfehler.

    Danke auch jojo61. Ich versuche, heute Abend weiterzumachen.

  • Hier das Log:

    Und hier die Datei mit den HELLO's...

    :wow


    Danke

    Stefan

    Dateien

  • Das ist sehr seltsam. Der Call kommt zurück obwohl er noch mitten im abarbeiten ist. Da muss etwas mit dem Stack nicht stimmen oder sonst wo Speicher fehlen.

    Änder doch mal in video .c folgendes:

    So langsam gehen mir die Ideen aus.

  • Leider kein Unterschied nach der Änderungen einschl. Kompilieren.

    In der xorg.conf habe ich DRI 3, läuft auf 24 Bit, GPU ist 1024 MB zugewiesen.

    Eben mal den modesetting- statt dem intel-Treiber erfolglos getestet.

    Oder fehlt bei mir ein Paket?

    nobanzai hatte mit Opensuse ja auch dieses Failed to create Vulkan Device. Was haben wir beide "falsch gemacht"?


    In der Hoffnung, dass Du noch eine gute Idee hast...


    Danke!


    Stefan

  • if (!p->vk) Fatal

    (_("Failed to create Vulkan Device"));

    Wenn ich das auskommentiere, dann kracht's.

  • Klar wenn du ohne Vulkan Device weiterlaufen lässt dann kracht es. Was mich wundert ist das es schon kracht und der DEBUG print immer noch läuft.

    Aber ich weiss auch nicht mehr was hier noch zu tun ist. Und mit der opengl Version hat es ja auch nicht funktioniert. Vielleicht liegt es ja an der GPU Version ??


    jojo61

  • Ok letzter versuch. Ändere mal folgendes:

  • Ok letzter versuch. Ändere mal folgendes:

    Die Änderungen machen leider keinen Unterschied - ich habe extra zusätzlich jede Änderung einzeln getestet. Nur das sleep verzögert den Absturz etwas und es kommen noch weitere Log-Meldungen:

    Ich habe neben dieser i3-8100 (Coffee Lake) mit Intel UHD Graphics 630 übrigens auch einen NUC 7i3BNH mit i3-7100U (Kaby Lake) und HD Graphics 620 - leider mit dem gleichen Ergebnis.

    Eben habe ich auch nochmal vom iHD auf den i965-Treiber gewechselt - ebenso kein Unterschied.


    Hoffentlich findest Du noch was ;(?(


    Danke!


    Stefan

  • Die Änderungen machen leider keinen Unterschied - ich habe extra zusätzlich jede Änderung einzeln getestet. Nur das sleep verzögert den Absturz etwas und es kommen noch weitere Log-Meldungen:

    Kannst du den libplacebo debug mit deinen Hello prints mal anhängen wie das mit dem sleep aussieht ?

  • Kannst du den libplacebo debug mit deinen Hello prints mal anhängen wie das mit dem sleep aussieht ?

    Das Log ist im Anhang. Danke!

    Im Vergleich zu oben hat er das nicht mehr gebracht...

    Code
    Mär 30 17:40:06 vdr2 vdr[3082]: HELLO EXTENSIONS
    Mär 30 17:40:06 vdr2 vdr[3082]: debug:     VK_KHR_shader_draw_parameters
    Mär 30 17:40:06 vdr2 vdr[3082]: HELLO EXTENSIO



    Anbei noch die letzte Ausgabe beim Kompilieren - fehlt hier was?

    Code
    g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/alsa  -I/usr/include/freetype2 -I/usr/local/include -I/usr/local/include -I/usr/local/include  -I/usr/local/include  -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhdvaapi"' -D_GNU_SOURCE -DDEBUG                 -DHAVE_GL                 -DAV_INFO -DAV_INFO_TIME=3000    -DUSE_MPEG_COMPLETE             -DH264_EOS_TRICKSPEED           -DUSE_VDR_SPU                   -DUSE_ALSA -DUSE_OSS -DUSE_OPENGLOSD -DUSE_GLX -DVAAPI  -DPLACEBO -DUSE_SCREENSAVER -DUSE_SWRESAMPLE  -DGIT_REV='"8c89787"' -I/usr/local/src/vdr-2.4.6-git/include  -g  -W -Wextra -Winit-self -Werror=overloaded-virtual  -Wno-unused-parameter   -shared  softhdcuvid.o softhddev.o video.o audio.o codec.o ringbuffer.o openglosd.o  -lasound -lfreetype -lEGL   -lEGL   -lplacebo  -L/usr/local/lib64 -lavutil -L/usr/local/lib64 -lswscale -L/usr/local/lib64 -lavcodec -lavfilter -lxcb-screensaver -lxcb-dpms -L/usr/local/lib64 -lswresample -lrt -lX11-xcb -lX11 -lxcb-icccm -lxcb -L/usr/lib64 -lGLEW -lGLU  -ldl -lglut   -o libvdr-softhdvaapi.so

    Dateien

  • Ich bin ratlos. Und du sagst das die Demo Programme der libplacebo laufen?

    Ich nutze xcb um an X anzudocken. Evtl. Ist da noch etwas faul. Das kannst du ausschließen wenn du mal die DRM Version baust. Nur da hättest du ja auch Probleme mit der opengl Version von libplacebo


    Nutzt du den iHD Treiber ?

  • Hallo,

    ich bin mit meinem NUC8 auf Kernel 5.10.27 gegangen und habe das Plugin auf den neusten Stand gebracht,

    Ich nutzte bisher softhddrm,

    Nun läuft nach einigen Sekunden Ton und Bild auseinander.

    Das schaukelt sich auf bis das Bild verpixelt ist.

    Gibt es da eine Regression?

  • Nutzt du den iHD Treiber ?

    Ja, ein Wechsel auf den i965-Treiber bringt das gleiche Ergebnis.

    Ich habe eben nochmal mit libplacebo gespielt und den Bench mit verbose laufen lassen. Dabei wird die erste Zeile ständig wiederholt "VK_ERROR_OUT_OF_DEVICE_MEMORY", aber mit einem OK beendet.

    Im Bios steht der GPU-Speicher auf 1024 MB.

    Hat das was zu bedeuten?


    meson configure ./build -Dbench=true && meson test -C./build benchmark --verbose

    Ich nutze xcb um an X anzudocken.

    In früheren, erfolglosen Tests hatte ich xcb, mesa & Co auch schon selber kompiliert - jedoch immer mit dem gleichen Ergebnis "failed to create vulkan device" oder so ähnlich.

    Was mich nur wundert, dass ich das softhdvaapi noch nie zum Laufen bekommen habe, während es mit softhdcuvid und libplacebo klappte. Fehlen da noch irgendwelche Intel-Treiber und bei nvidia war immer alles dabei?

    Den libvulkan_intel habe ich von Opensuse - da steht 20.3.5 - also von der Mesa-Version abhängig.

    Das kannst du ausschließen wenn du mal die DRM Version baust. Nur da hättest du ja auch Probleme mit der opengl Version von libplacebo

    Geht denn softhddrm mittlerweile auch mit libplacebo? Das kann ich gerne testen. Dazu muss ich doch nur den X-Server am Starten hindern, oder?


    Danke und frohe Ostern!


    Stefan

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!