ivan-hc / Hypnotix-appimage

An IPTV streaming application with support for live TV (EXPERIMENTAL)
2 stars 0 forks source link

Investigating on continuous crashes #2

Open ivan-hc opened 8 months ago

ivan-hc commented 8 months ago

I use Nvidia.

Mesa is unable to find /usr/lib/libvdpau_nvidia.so, a library that normally should be in /usr/lib/vdpau/libvdpau_nvidia.so instead.

By mounting my driver on the Debian host to the JuNest guest (using an empty file "libvdpau_nvidia.so") I get different outputs.

For now this is what I'm mounting in the AppRun, on my PC:

$HERE/.local/share/junest/bin/junest -n -b "$ETC_RESOLV\
     --bind /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 /usr/lib/libvdpau_nvidia.so\
     --bind /usr/lib/x86_64-linux-gnu/librt.so.1 /usr/lib/librt.so.1\
     --bind /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/libdl.so.2" -- $EXEC "$@"

the other libraries are the result of my investigation until now.

I'll keep to investigate until I reach new positive results.

ivan-hc commented 8 months ago

https://github.com/fsquillace/junest/issues/344

ivan-hc commented 8 months ago

Installing libnih to get librt.so.1 and alro adding libdl.so.2 in the list of libraries to save reduces the size of the command I wrote above.

However, if I use

$HERE/.local/share/junest/bin/junest -n -b "$ETC_RESOLV\
     --bind /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 /usr/lib/libvdpau_nvidia.so" -- $EXEC "$@"

the whole xorg session lags and no image is displayed in Hypnotix.

ivan-hc commented 8 months ago

I'll use this function to check the right libvdpau_nvidia.so library on the host and mount it:

# FIND THE VENDOR
VENDOR=$(glxinfo -B | grep "OpenGL vendor")
if [[ $VENDOR == *"NVIDIA"* ]]; then
        NVIDIAJSON=$(find /usr/share -name "*nvidia*json" | sed 's/ /:/g')
    export VK_ICD_FILENAMES=$NVIDIAJSON
    VENDORLIB="nvidia"
    export MESA_LOADER_DRIVER_OVERRIDE=$VENDORLIB
fi

HOST_VDPAU_DRIVER="--bind $(find /usr/lib -name *libvdpau*$VENDORLIB.so* | head -1) /usr/lib/libvdpau_nvidia.so"

this will mount /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 to the empty file in JuNest

ivan-hc commented 8 months ago

UPDATE: I've also built (on my PC) a script with AppimaGen and based on Debian Stable and Mint packages.

I get the same errors, so this is not an issue only related to JuNest.

[xcb] Unknown sequence number while processing queue
[xcb] You called XInitThreads, this is not your fault
[xcb] Aborting, sorry about that.
xcb_io.c:278: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.

also

libEGL warning: DRI2: failed to authenticate

as already wroite on the README of this repository.

https://github.com/ivan-hc/Hypnotix-appimage/assets/88724353/a58b2d52-570f-44c7-847b-09041c781b42

ivan-hc commented 8 months ago

For testing purposes, both versions are available in "Releases":