Skip to content

Conversation

@royshil
Copy link
Owner

@royshil royshil commented Feb 3, 2025

No description provided.

@tt2468
Copy link

tt2468 commented Mar 30, 2025

When testing this PR on Ubuntu 24.04 and NVIDIA, I'm getting a symbol lookup error after building the plugin with vulkan acceleration:
obs: symbol lookup error: /usr/lib/x86_64-linux-gnu/obs-plugins/obs-localvocal.so: undefined symbol: vkEnumerateInstanceExtensionProperties

Somehow it builds on this system, but it seems to be somehow missing linkage to vulkan, unless it's dynamically linked or something?

        linux-vdso.so.1 (0x00007ffee4bbb000)
        libobs-frontend-api.so.30 => /lib/x86_64-linux-gnu/libobs-frontend-api.so.30 (0x00007451ae9d5000)
        libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007451ae914000)
        libonnxruntime.so.1 => /usr/lib/x86_64-linux-gnu/obs-plugins/obs-localvocal/libonnxruntime.so.1 (0x00007451ac200000)
        libobs.so.30 => /lib/x86_64-linux-gnu/libobs.so.30 (0x00007451ad4fa000)
        libQt6Widgets.so.6 => /lib/x86_64-linux-gnu/libQt6Widgets.so.6 (0x00007451aba00000)
        libQt6Gui.so.6 => /lib/x86_64-linux-gnu/libQt6Gui.so.6 (0x00007451ab200000)
        libQt6Core.so.6 => /lib/x86_64-linux-gnu/libQt6Core.so.6 (0x00007451aac00000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007451aa800000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007451ab117000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007451ae8e4000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007451aa400000)
        /lib64/ld-linux-x86-64.so.2 (0x00007451ae9ff000)
        libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007451ae8b7000)
        libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007451ad4d8000)
        librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007451ad4ba000)
        libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007451ac18f000)
        libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007451ad4a6000)
        libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007451ab956000)
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007451a9e00000)
        libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007451ac13b000)
        libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 (0x00007451aaba2000)
        liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 (0x00007451ad496000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007451aaae8000)
        libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007451ad488000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007451ab93a000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007451ae8ae000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007451ad483000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007451ac136000)
        libavcodec.so.61 => /lib/x86_64-linux-gnu/libavcodec.so.61 (0x00007451a8800000)
        libavformat.so.61 => /lib/x86_64-linux-gnu/libavformat.so.61 (0x00007451a8400000)
        libavutil.so.59 => /lib/x86_64-linux-gnu/libavutil.so.59 (0x00007451a7200000)
        libswscale.so.8 => /lib/x86_64-linux-gnu/libswscale.so.8 (0x00007451aa752000)
        libswresample.so.5 => /lib/x86_64-linux-gnu/libswresample.so.5 (0x00007451aaac7000)
        libjansson.so.4 => /lib/x86_64-linux-gnu/libjansson.so.4 (0x00007451aaab6000)
        libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007451ab935000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007451aaa8d000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007451ab10d000)
        libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x00007451aa701000)
        libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007451a7030000)
        libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007451aa6ef000)
        libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007451aa69e000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007451a6ef3000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007451a6daa000)
        libQt6DBus.so.6 => /lib/x86_64-linux-gnu/libQt6DBus.so.6 (0x00007451aa34b000)
        libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007451aa655000)
        libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007451aa622000)
        libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007451aa320000)
        libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007451a9dc8000)
        libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007451a86ea000)
        libmd4c.so.0 => /lib/x86_64-linux-gnu/libmd4c.so.0 (0x00007451a9db6000)
        libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007451a8334000)
        libicui18n.so.74 => /lib/x86_64-linux-gnu/libicui18n.so.74 (0x00007451a6a00000)
        libicuuc.so.74 => /lib/x86_64-linux-gnu/libicuuc.so.74 (0x00007451a6600000)
        libdouble-conversion.so.3 => /lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007451a9da1000)
        libb2.so.1 => /lib/x86_64-linux-gnu/libb2.so.1 (0x00007451a9d83000)
        libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007451a6974000)
        libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x00007451a6453000)
        libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007451a6259000)
        libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007451a6d62000)
        libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007451a691f000)
        libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007451a689b000)
        libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007451a6190000)
        libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007451a9d57000)
        libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007451aaa83000)
        libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007451aa615000)
        libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007451a9d3d000)
        libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007451a6878000)
        libvpx.so.9 => /lib/x86_64-linux-gnu/libvpx.so.9 (0x00007451a5e00000)
        libwebpmux.so.3 => /lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007451a6d54000)
        liblcms2.so.2 => /lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007451a6816000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007451a615e000)
        libdav1d.so.7 => /lib/x86_64-linux-gnu/libdav1d.so.7 (0x00007451a5c1f000)
        librsvg-2.so.2 => /lib/x86_64-linux-gnu/librsvg-2.so.2 (0x00007451a5400000)
        libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007451a5bbc000)
        libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007451a5a78000)
        libzvbi.so.0 => /lib/x86_64-linux-gnu/libzvbi.so.0 (0x00007451a5373000)
        libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007451aa315000)
        libaom.so.3 => /lib/x86_64-linux-gnu/libaom.so.3 (0x00007451a4e00000)
        libcodec2.so.1.2 => /lib/x86_64-linux-gnu/libcodec2.so.1.2 (0x00007451a3c00000)
        libfdk-aac.so.2 => /lib/x86_64-linux-gnu/libfdk-aac.so.2 (0x00007451a4d6a000)
        libgsm.so.1 => /lib/x86_64-linux-gnu/libgsm.so.1 (0x00007451a4d5b000)
        libilbc.so.3 => /lib/x86_64-linux-gnu/libilbc.so.3 (0x00007451a4d38000)
        libjxl.so.0.11 => /lib/x86_64-linux-gnu/libjxl.so.0.11 (0x00007451a3800000)
        libjxl_threads.so.0.11 => /lib/x86_64-linux-gnu/libjxl_threads.so.0.11 (0x00007451a86e4000)
        libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007451a4cc2000)
        libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007451a4c61000)
        libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007451a3400000)
        librav1e.so.0 => /lib/x86_64-linux-gnu/librav1e.so.0 (0x00007451a3000000)
        libshine.so.3 => /lib/x86_64-linux-gnu/libshine.so.3 (0x00007451a8328000)
        libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007451a4c44000)
        libSvtAv1Enc.so.2 => /lib/x86_64-linux-gnu/libSvtAv1Enc.so.2 (0x00007451a2600000)
        libtheoraenc.so.1 => /lib/x86_64-linux-gnu/libtheoraenc.so.1 (0x00007451a3bc7000)
        libtheoradec.so.1 => /lib/x86_64-linux-gnu/libtheoradec.so.1 (0x00007451a4c26000)
        libtwolame.so.0 => /lib/x86_64-linux-gnu/libtwolame.so.0 (0x00007451a3ba1000)
        libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007451a3b73000)
        libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007451a3355000)
        libwebp.so.7 => /lib/x86_64-linux-gnu/libwebp.so.7 (0x00007451a3af7000)
        libx264.so.164 => /lib/x86_64-linux-gnu/libx264.so.164 (0x00007451a2200000)
        libx265.so.215 => /lib/x86_64-linux-gnu/libx265.so.215 (0x00007451a1000000)
        libxvidcore.so.4 => /lib/x86_64-linux-gnu/libxvidcore.so.4 (0x00007451a2ef3000)
        libSvtHevcEnc.so.1 => /lib/x86_64-linux-gnu/libSvtHevcEnc.so.1 (0x00007451a0c00000)
        libva.so.2 => /lib/x86_64-linux-gnu/libva.so.2 (0x00007451a37c9000)
        libvpl.so.2 => /lib/x86_64-linux-gnu/libvpl.so.2 (0x00007451a3770000)
        libdvdnav.so.4 => /lib/x86_64-linux-gnu/libdvdnav.so.4 (0x00007451a3ae0000)
        libdvdread.so.8 => /lib/x86_64-linux-gnu/libdvdread.so.8 (0x00007451a3335000)
        libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007451a201e000)
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007451a4c12000)
        libgme.so.0 => /lib/x86_64-linux-gnu/libgme.so.0 (0x00007451a2ea7000)
        libopenmpt.so.0 => /lib/x86_64-linux-gnu/libopenmpt.so.0 (0x00007451a0a27000)
        libchromaprint.so.1 => /lib/x86_64-linux-gnu/libchromaprint.so.1 (0x00007451a3760000)
        libbluray.so.2 => /lib/x86_64-linux-gnu/libbluray.so.2 (0x00007451a25a8000)
        librabbitmq.so.4 => /lib/x86_64-linux-gnu/librabbitmq.so.4 (0x00007451a2590000)
        librist.so.4 => /lib/x86_64-linux-gnu/librist.so.4 (0x00007451a255d000)
        libsrt-gnutls.so.1.5 => /lib/x86_64-linux-gnu/libsrt-gnutls.so.1.5 (0x00007451a0f36000)
        libzmq.so.5 => /lib/x86_64-linux-gnu/libzmq.so.5 (0x00007451a0e94000)
        libva-drm.so.2 => /lib/x86_64-linux-gnu/libva-drm.so.2 (0x00007451a6811000)
        libva-x11.so.2 => /lib/x86_64-linux-gnu/libva-x11.so.2 (0x00007451a6156000)
        libvdpau.so.1 => /lib/x86_64-linux-gnu/libvdpau.so.1 (0x00007451a6150000)
        libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007451a2546000)
        libOpenCL.so.1 => /usr/local/cuda-12.8/lib64/libOpenCL.so.1 (0x00007451a0600000)
        libsoxr.so.0 => /lib/x86_64-linux-gnu/libsoxr.so.0 (0x00007451a24e0000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007451a332f000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007451a3327000)
        libpulsecommon-16.1.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so (0x00007451a09a9000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007451a095a000)
        libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007451a2ea0000)
        libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007451a090d000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007451a08e0000)
        libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007451a0828000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007451a05d5000)
        libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007451a053b000)
        libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007451a0515000)
        libicudata.so.74 => /lib/x86_64-linux-gnu/libicudata.so.74 (0x000074519e600000)
        libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007451a04bf000)
        libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x000074519e45c000)
        libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007451a24ca000)
        libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007451a2e99000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007451a0815000)
        libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007451a0809000)
        libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007451a0491000)
        libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007451a0480000)
        libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007451a0415000)
        libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007451a0409000)
        libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007451a03f5000)
        libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007451a03e9000)
        libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007451a03da000)
        libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007451a24c5000)
        libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x000074519e3ad000)
        libjxl_cms.so.0.11 => /lib/x86_64-linux-gnu/libjxl_cms.so.0.11 (0x00007451a03c3000)
        libhwy.so.1 => /lib/x86_64-linux-gnu/libhwy.so.1 (0x00007451a03b7000)
        libbrotlienc.so.1 => /lib/x86_64-linux-gnu/libbrotlienc.so.1 (0x000074519e30e000)
        libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007451a03ad000)
        libsharpyuv.so.0 => /lib/x86_64-linux-gnu/libsharpyuv.so.0 (0x00007451a0e8b000)
        libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007451a039f000)
        libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x000074519e2b2000)
        libvorbisfile.so.3 => /lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007451a0395000)
        libudfread.so.0 => /lib/x86_64-linux-gnu/libudfread.so.0 (0x00007451a038a000)
        libmbedcrypto.so.7 => /lib/x86_64-linux-gnu/libmbedcrypto.so.7 (0x000074519e22d000)
        libcjson.so.1 => /lib/x86_64-linux-gnu/libcjson.so.1 (0x00007451a0380000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007451a036a000)
        libsodium.so.23 => /lib/x86_64-linux-gnu/libsodium.so.23 (0x000074519e1d6000)
        libpgm-5.3.so.0 => /lib/x86_64-linux-gnu/libpgm-5.3.so.0 (0x000074519e18c000)
        libnorm.so.1 => /lib/x86_64-linux-gnu/libnorm.so.1 (0x000074519e081000)
        libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007451a0362000)
        libxcb-dri3.so.0 => /lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x000074519e07a000)
        libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x000074519dff2000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x000074519df12000)
        libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x000074519df0a000)
        libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x000074519def6000)
        libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x000074519debb000)
        libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x000074519de38000)
        libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x000074519de1d000)
        libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x000074519ddff000)
        libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x000074519ddf4000)
        libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x000074519dde5000)
        libFLAC.so.12 => /lib/x86_64-linux-gnu/libFLAC.so.12 (0x000074519dd81000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x000074519dd74000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x000074519dc2c000)
        liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x000074519dc0a000)
        libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x000074519dc01000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x000074519dbdc000)```

@Tabby
Copy link
Collaborator

Tabby commented Jun 21, 2025

When testing this PR on Ubuntu 24.04 and NVIDIA, I'm getting a symbol lookup error after building the plugin with vulkan acceleration: obs: symbol lookup error: /usr/lib/x86_64-linux-gnu/obs-plugins/obs-localvocal.so: undefined symbol: vkEnumerateInstanceExtensionProperties

Somehow it builds on this system, but it seems to be somehow missing linkage to vulkan, unless it's dynamically linked or something?

Whisper's GGML libs link dynamically to their dependencies. I've been messing around with getting acceleration working on Linux and found that I needed to include the dependencies in the target_link_libraries as you can see in my branch: Tabby@b5eda81#diff-a5b6f45a8bde258d33111b784f7e693ef180e541d3e872731d6e5b7536b4e637R256-R261

I think to fix this the following might work:

  • Add -DGGML_STATIC to the CMake args passed to Whisper, to make it link against static dependencies. They're still added with PRIVATE scope, so they may still not be included transitively
  • If necessary, add the relevant target_link_libraries statements to the CMake file for the prebuilt whisper libs, in a similar (but hopefully neater and clearer XD) way to the way I've done it in my branch that builds whisper.cpp directly

@Tabby Tabby force-pushed the roy.bump_whispercpp_008 branch from 308e68c to a94a6f9 Compare October 20, 2025 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants