softhdcuvid with hevc and UHD

  • Hallo

    dir fehlt libcudart.so.xx.xx Das ist die Runtime Lib für CUDA und wird gebraucht.


    Bei mir ist es die libcudart.so.10.1 je nachdem welche cudaversion du installierst ist es hinten eine andere Nummer.

    Ich muss zugeben, da stehe ich auf dem schlauch. ldd zeigt diese library nicht an, das ist fakt. Ich verstehe aber nicht warum: linker greift auf diese library, gefunden wird sie auch, s Anlage. Hier relevante Zeilen:

    ---------

    g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/libdrm -I/usr/include/libdrm -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/opt/cuda/include -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhdcuvid"' -D_GNU_SOURCE -DCUVID -DHAVE_GL -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_PIP -DUSE_MPEG_COMPLETE -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_ALSA -DUSE_OPENGLOSD -DUSE_GLX -DUSE_SCREENSAVER -DUSE_SWRESAMPLE -DGIT_REV='"fae0d3a"' -g -Wextra -Winit-self -Werror=overloaded-virtual -std=c++0x -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -shared softhdcuvid.o softhddev.o video.o audio.o codec.o ringbuffer.o openglosd.o -lasound -lva-glx -lva -lGLEW -lGLU -lGL -lGLEW -lGLU -lGL -lfreetype -lavutil -lswscale -lavcodec -lavfilter -lxcb-screensaver -lxcb-dpms -lswresample -lrt -lX11-xcb -lX11 -lxcb-icccm -lxcb -L/usr/lib64 -L/usr/local/cuda/lib64 -lGLEW -lGLX -ldl -lcuda -Xlinker -verbose -L/opt/cuda/lib64 -lcudart -lnvcuvid -o libvdr-softhdcuvid.so

    ------- cut -------

    attempt to open /usr/lib64/libcudart.so failed

    attempt to open /usr/lib64/libcudart.a failed

    attempt to open /usr/local/cuda/lib64/libcudart.so failed

    attempt to open /usr/local/cuda/lib64/libcudart.a failed

    attempt to open /opt/cuda/lib64/libcudart.so succeeded

    /opt/cuda/lib64/libcudart.so

    attempt to open /usr/lib64/libnvcuvid.so succeeded

    /usr/lib64/libnvcuvid.so

    ----------------


    zur Laufzeit muss diese lib auch auffindbar sein:

    ---------------

    [andrey@vdrmain vdr-softhdcuvid]$ ldconfig -p | grep cudart

    libcudart.so.10.1 (libc6,x86-64) => /opt/cuda/lib64/libcudart.so.10.1

    libcudart.so (libc6,x86-64) => /opt/cuda/lib64/libcudart.so

    ----------------


    cuda test läuft auch:

    -----------------
    [root@vdrmain samples]# bin/x86_64/linux/release/deviceQuery

    bin/x86_64/linux/release/deviceQuery Starting...

    CUDA Device Query (Runtime API) version (CUDART static linking)
    Detected 1 CUDA Capable device(s)
    Device 0: "GeForce GT 1030"

    CUDA Driver Version / Runtime Version 10.1 / 10.1

    CUDA Capability Major/Minor version number: 6.1

    Total amount of global memory: 1998 MBytes (2095251456 bytes)

    ( 3) Multiprocessors, (128) CUDA Cores/MP: 384 CUDA Cores

    GPU Max Clock rate: 1468 MHz (1.47 GHz)

    Memory Clock rate: 3004 Mhz

    Memory Bus Width: 64-bit

    L2 Cache Size: 524288 bytes

    Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)

    Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers

    Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers

    Total amount of constant memory: 65536 bytes

    Total amount of shared memory per block: 49152 bytes

    Total number of registers available per block: 65536

    Warp size: 32

    Maximum number of threads per multiprocessor: 2048

    Maximum number of threads per block: 1024

    Max dimension size of a thread block (x,y,z): (1024, 1024, 64)

    Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)

    Maximum memory pitch: 2147483647 bytes

    Texture alignment: 512 bytes

    Concurrent copy and kernel execution: Yes with 2 copy engine(s)

    Run time limit on kernels: Yes

    Integrated GPU sharing Host Memory: No

    Support host page-locked memory mapping: Yes

    Alignment requirement for Surfaces: Yes

    Device has ECC support: Disabled

    Device supports Unified Addressing (UVA): Yes

    Device supports Compute Preemption: Yes

    Supports Cooperative Kernel Launch: Yes

    Supports MultiDevice Co-op Kernel Launch: Yes

    Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0

    Compute Mode:

    < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.1, CUDA Runtime Version = 10.1, NumDevs = 1

    Result = PASS

    ---------


    Ich verstehe echt nicht was da los sein soll. Was kann ich übersehen haben?


  • Ich habe dafür folgenden link angelegt:


    Code
    1. /usr/local/cuda -> /opt/cuda


    vdr-User-# 755 to_h264 chk_r vdr-transcoding

  • Ich verstehe nicht, was das bringen soll... Linker option -L/opt/cuda/lib64 lässt linker die libraries finden; ldconfig ist auch so konfiguriert, dass die libraries dort gefunden werden. Ich möchte es wirklich verstehen ...

  • Du kannst natürlich auch den Makefile anpassen


    vdr-User-# 755 to_h264 chk_r vdr-transcoding

  • Hallo

    das ganze verstehe ich auch nicht. Bei mir sieht das so aus. Warum bei die die cudart nicht genutzt wird ist mir ein Rätsel.

    Wohin zeigt den die libcudart.so bei dir. Das ist doch ein Symlink.

  • Code
    1. ldd libvdr-softhdcuvid.so | grep cuda
    2. libcuda.so.1 => /usr/lib64/libcuda.so.1 (0x00007f3bda588000)
    3. libcudart.so.10.0 => /opt/cuda/lib64/libcudart.so.10.0 (0x00007f3bda30e000)


    vdr-User-# 755 to_h264 chk_r vdr-transcoding

  • Entschuldigung für das längere schweigen, kam erst jetzt dazu weitere daran zu machen. Mein >Buildproblem (fehlender link zu cudart) habe ich momentan umgegangen in der ich als root gebaut habe, eine genauere Analyse steht noch bevor, darum kümmere ich mich später. (Ich konnte aber witzigerweise das Problem auch dann nicht mehr nachvollziehen, wenn ich das ganze mit meinem "normalen" user jetzt neu gebaut hatte). Wesentliche Ergebnisse:

    1. cudart wird referenziert (vollständige Liste s. Anlage):

    libcuda.so.1 => /usr/lib/libcuda.so.1 (0x00007f6db46f7000)

    libcudart.so.10.1 => /opt/cuda/lib64/libcudart.so.10.1 (0x00007f6db447b000)

    libnvcuvid.so.1 => /usr/lib/libnvcuvid.so.1 (0x00007f6db3f5a000)

    2. openglosd und libplacebo sind abgeschaltet (s. Makefile in der Anlage)

    3. Bildschirm bleibt nachwievor schwarz. Syslog (vollständig in der Anlage, standalonelog.txt) zeigt nachwievor recht komische Meldungen.

    4. Unter gdb kam der crash nicht direkt sondern erst nach dem umschalten. Bildschirm blieb aber schwarz. (log & bt ebenfalls in der Anlage)


    Lässt sich daraus irgendeine Information für die Problemsuche gewinnen? Vielen Dank im Voraus!


  • avak Ehrlich gesagt versteh ich nicht was bei dir Faul ist. Er stürzt beim kreieren der GL Texturen ab. Genauer gesagt beim Versuch die Texturen an CUDA bekannt zu geben. Das ist also ein Problem mit der installation des NVIDIA Treibers. Nur welches kann ich dir so nicht sagen.

    Versuch mal einen anderen Treiber 430.xx oder so.


    sorry wenn ich da nicht weiter komme


    jojo61

  • Hallo jojo61,


    beim aktuellen git ist das Hauptmenü nur ein 1/4 der normalen Größe.


    nvidia 430 / cuvid / opengl / ohne libplacebo / skindesigner mit opengl patch


    git checkout fae0d3a funktioniert


    Gruß

    Murry

  • Versuch mal einen anderen Treiber 430.xx oder so.


    sorry wenn ich da nicht weiter komme

    Eh, du machst das du kannst, ist doch viel mehr als man erwarten kann. Danke!

    Habe jetzt mit 430.40 probiert

    [root@vdrmain release]# pacman -Qs nvidia

    local/cuda 10.1.243-1

    NVIDIA's GPU programming toolkit

    local/libvdpau 1.3-1

    Nvidia VDPAU library

    local/nvidia-dkms 430.40-7

    NVIDIA driver sources for linux

    local/nvidia-utils 430.40-2

    NVIDIA drivers utilities

    local/opencl-nvidia 430.40-2

    OpenCL implemention for NVIDIA


    Gleiches (oder zumindest ähnliches) Ergebnis... (s. Anlage) Siehst du irgendwelche Änderungen?

  • Nächster Experiment: aktuellste Version von softhdcuvid-plugin, OPENGLOSD aktiviert (aus Verzweiflung/Mange der Ideen). Erster Startversucht geht schief, beim zweiten gibt es plötzlich Video (aber vdr ist onbedienbar, kein OSD wird gezeigt, keine Reaktion auf Fernbedienung...) Lässt sich aus log irgendwas gewinnen?

  • Nächster Experiment: aktuellste Version von softhdcuvid-plugin, OPENGLOSD deaktiviert, cecremote Plugin auch deaktiviert. Erster Startversuch geht schief, beim zweiten gibt es plötzlich Video (vdr ist über Tastatur prinzipiell bedienbar, aber kein OSD wird gezeigt) Lässt sich aus log irgendwas gewinnen?

  • Jetzt sieht es schon ziemlich gut aus:

    OPENGLOSD aktiviert, cecremote plugin deaktiviert, tastaturbedienung. vdr startet und scheint zu tun, OSD wird angezeigt. Ich habe massiv cecremote plugin in verdacht, muss aber mehr experimentieren um das zu erhärten/zuwiderlegen. Logs natürlich anbei.


    Frage in die große Runde:

    Nutzt jemand cecremote plugin mit softhdcuvid?

  • Code
    1. video: fatal i/o error

    Wenn du das im Log hast dann gab es einen fatalen Fehler mit dem Window und das Plugin stellt seine arbeit ein.

    Könnte schon sein das cecremote da mit hineinspielt. Versuche es halt erst mal ohne zusätzliche Plugins. Dann kannst du es besser einkreisen.


    mfg

    jojo61

  • Stimmt, habe nun einen fix eingecheckt. Probier mal ob es nun klappt.

    Läuft super, auch die Wiedergabe von Aufzeichnungen hat sich verbessert.


    Vielen Dank


    Kann man den Opengl-Patch für den Skindesigner allgemein aufnehmen? Oder stört es bei anderen Ausgabeplugins?


    Murry

  • Murry ja ich denke den opengl patch kann man allemein im skindesigner aufnehmen. Ich hatte nur Fehler in der Reihenfolge von close und delete von OSDs gefixt. Das sollte überall richtiger sein.


    Aber ganz sauber ist der skindesigner damit noch nicht. Es gibt immer noch abstürze mit dem softhdcuvid.


    mfg

    jojo61


  • Moin,

    blöde Frage: Wo finde ich diesen opengl patch ?

    Gruß