Posts by 447377

    Hallo Michael,


    danke für Deine Rückmeldung! Das klingt ja sehr gut mit der Auslastung der 10er CPU.

    Hast Du irgendwas selber kompiliert (libdrm, libva oder Ähnliches?) oder alle Pakete von Tumbleweed übernommen?


    Gruß

    Stefan

    Die Shader sind schon rechenintensiv für die GPU.

    Tatsache, das hätte ich nicht gedacht. Ich habe eben mal intel_gpu_top installiert und hier habe ich eine Render-Auslastung von 80 % mit dem Scaler ewa_robidouxsharp. Mit binlear sind es noch 65 %, mit spline16 sind es 55 %. Ich dachte nämlich, dass die CPU bei libplacebo unterstützt.

    Und mit dem Shader sind's 100 %...

    Dann reicht hier meine i3-8100 mit der UHD Graphics 630 nicht aus... Du hast eine Iris Graphics 855, oder? Die reicht aus?

    Aber bevor ich die CPU tausche, könnte ich vermutlich gleich eine nVidia nachrüsten. Aber braucht's hier die GT1050 oder reicht die GT1030 mittlerweile auch?


    Danke!

    Jetzt habe ich auch im Menü die Scaler zur Auswahl.

    Du hast doch eine 10er CPU, oder? Die dürfte auch die UHD Graphics 630 haben, ggf. mit einer höheren max. Frequenz. Hast Du den Shader adaptive-sharpen.glsl auch mal getestet?


    Stefan

    Wenn du das Bild nachschärfen willst dann könntest du den adaptive-sharpen nutzen, das ist aber Geschmacksache.

    Das habe ich eben gemacht. Das Bild stottert leider extrem - 576i und 720p-Sender.

    Du nutzt die aktuellste libplacebo. Soweit habe ich noch nicht getestet. Versuche es mal mit einer älteren Version zb. 3.117

    Und nimm mal den User Shader zum testen raus. Also kein -S ....


    PS: Und schreibe bitte das du softhdvaapi nutzt. Ich stutzte immer wenn du softhdcuvid schreibst :-)

    Tja, was soll ich sagen... Es rennt... Vielen DANK! - Für Deine Unterstützung und natürlich auch für das Plugin!

    Also softhdvaapi in diesem Fall rennt...:)


    Ich habe libplacebo 3.117 kompiliert und schon schnurrt der VDR.

    Für's Protokoll: Ich habe alle Pakete von Tumbleweed genommen, bis auf libplacebo. Ist das i.O.?


    Spannend wäre nun, woran es letztendlich lag, dass es mit Opensuse Leap nicht ging. Denn beim libplacebo-Benchmark, kommt hier genauso die Anzeige:

    VK_ERROR_OUT_OF_DEVICE_MEMORY

    plplay funktioniert, hier moniert er die Vulkan-Unterstützung nicht an. Das könnte natürlich viele Ursachen haben. Gibt's irgendwo eine Anleitung, vulkan manuell sauber ins System zu integrieren?


    Ich habe als Scaler ewa_robidouxsharp eingestellt. Du hattest das irgendwann mal geschrieben. Ist das immernoch das Optimum?

    Und welcher Shader wird standardmäßig benützt? Soll ich hier einen der vier aus dem Plugin-Verzeichnis nehmen.


    Stefan

    Also da scheint doch etwas mit deinem Vulkan nicht zu stimmen.

    Nun habe ich Tumbleweed installiert und ich komme weiter.

    plplay liefert ein Bild und ich kann Scaler auswählen...


    Und: softhdcuvid liefert ein Bild. Soweit war ich mit libplacebo und vaapi noch nie.:)

    Aber: ich kann keine Scaler auswählen, im Plugin-Menü steht nur: Skalierung: (null) :(

    Außerdem scheint es sehr empfindlich zu sein. Wenn ich z.B. den Monitor-Typ umstellen will (default Monitor auf sRGB) folgt ein Absturz.

    Schau mal in die Quelle da steht meist ganz vorne wie es zu compilieren ist.


    Evtl. denke mal daran das ganze System neu aufzusetzen. Ich nutze auch Tumbleweed und da geht alle ohne Probleme.

    Mit einem neu ausgecheckten libplacebo hat's endlich funktioniert. Im Changelos stand auch irgendwas von der Demo-Installation drin - war vermutlich ein Bug in der älteren Version, weshalb das gestern nicht klappte.

    Für's Protokoll kurz der Weg des libplacebo-Kompilierens:

    Code
    1. git clone https://github.com/haasn/libplacebo libplacebo-git && cd libplacebo-git
    2. git submodule update --init
    3. meson ./build --prefix=/usr/local --libdir=/usr/local/lib64 -Ddemos=true
    4. ninja -C./build install && ldconfig

    Und dann der Test mit plplay /home/stefan/vdr/00003.ts

    Hab's unten gleich rot markiert. Hier sollte ich wohl ein anderes SDL2-Paket installieren, oder?

    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

    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
    1. Mär 30 17:40:06 vdr2 vdr[3082]: HELLO EXTENSIONS
    2. Mär 30 17:40:06 vdr2 vdr[3082]: debug: VK_KHR_shader_draw_parameters
    3. Mär 30 17:40:06 vdr2 vdr[3082]: HELLO EXTENSIO



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

    Code
    1. 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

    Files

    • log.txt

      (19.45 kB, downloaded 7 times, last: )

    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

    if (!p->vk) Fatal

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

    Wenn ich das auskommentiere, dann kracht's.

    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

    Hier das Log:

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

    :wow


    Danke

    Stefan

    Files

    • context.c.txt

      (61.27 kB, downloaded 7 times, last: )

    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.

    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
    1. // Finally, initialize the logical device and the rest of the vk_ctx
    2. printf("HELLO 3\n");
    3. if (!device_init(vk, params))
    4. printf("HELLO 3b\n");
    5. goto error;
    6. pl_vk->gpu = pl_gpu_create_vk(vk);
    7. printf("HELLO 4\n");
    8. if (!pl_vk->gpu)
    9. 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...

    Zumindest SPIRV und gslang solltest du noch installieren und nochmal compilieren. Dafür lösche vorher das build directory.


    Die waren/sind beide installiert. Wieso kommt bei Dir

    Code
    1. Run-time dependency vulkan found: NO



    Ich habe die Pakete um shaderc deinstalliert, damit er glslang nimmt. Damit sieht's wie folgt aus, leider immer noch das fehlende Vulkan-Device... - das Log ist in der Anlage.


    Danke!


    meson ./build --prefix=/usr/local --libdir=/usr/local/lib64

    Files

    • log.txt

      (8.08 kB, downloaded 9 times, last: )

    Soweit sieht es immer noch gut aus. Nun wird es schwieriger. Der Log von oben kommt vom pl_vulkan_create und da brauchen wir einen erweiterten Log.

    In der datei video.c vom plugin in Zeile 5591 steht p->context.log_level = PL_LOG_WARN; mach da mal ein PL_LOG_TRACE draus. Und dann poste mal das Log.

    Danke für Deine Geduld! Ich würde ungern aufgeben...


    Stefan


    Sieht prima aus. Und nun fehlt noch ein ldd libvdr-softhdvvaapi.so damit man sieht das er es auch so ablinkt.


    ldd /usr/local/lib/vdr/libvdr-softhdvaapi.so.2.5.1

    Und hast du /usr/local/lib64 auch im LD_PATH ?

    cat /etc/ld.so.conf

    Code
    1. /usr/local/lib64
    2. /usr/local/lib
    3. include /etc/ld.so.conf.d/*.conf
    4. # /lib64, /lib, /usr/lib64 and /usr/lib gets added
    5. # automatically by ldconfig after parsing this file.
    6. # So, they do not need to be listed.

    pkg-config --variable pc_path pkg-config

    Code
    1. /usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/opt/kde3/lib64/pkgconfig

    Danke für Deine Unterstützung!


    Stefan

    Poste doch mal den output vom placebo compile batch. Evtl. ist ja placebo nicht vollständig.

    meson ./build --prefix=/usr/local --libdir=/usr/local/lib64

    ninja -C./build install && ldconfig

    Ein anschließender Test bestätigt, alles ok.

    meson configure ./build -Dtests=true && ninja -C./build test