flightlessmango / MangoHud

A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
MIT License
6.35k stars 281 forks source link

MangoHUD does not work on ZorinOS 15.1 #17

Closed canalocaradoti closed 4 years ago

canalocaradoti commented 4 years ago

Hello, how are you? First of all I would like to congratulate you for the work and I hope it will evolve even more and thus be a reference in the Linux world.

Well, I'm an editor on the Brazilian blog Diolinux and through the GamingOnLinux blog, I saw your tool and found it interesting and went to test it. But unfortunately on ZorinOS 15.1 Core (Gnome) and Lite (XFCE), MangoHUD is not working, I ran both the .sh script and tried to compile it and it was not. In theory ZorinOS uses the Ubuntu 18.04 base, and in some packages it can use the 18.04.1 base or the 18.04.3 base. I also saw that the meson is in version 0.47. I have a hybrid laptop from Dell (Intel + Nvidia), with a GTX 960M and using the 440.44 drivers. I wonder if you have any procedure to do or something like that. I am available to help.

Att Ricardo

flightlessmango commented 4 years ago

Was there any errors when you tried to build mangohud? What command did you use to test mangohud with?

For basic testing I usually recommend downloading the vulkan-tools package and running MANGOHUD=1 vkcube

telans commented 4 years ago

I ran both the .sh script and tried to compile it and it was not.

Failed to compile? What was the error message?

canalocaradoti commented 4 years ago

So, I followed the recommended procedures. There was no error when I ran install.sh or when I ran ./build.sh install. I also tried the Vulkan test and nothing, so much so that I have the vulkan-tools package installed.

telans commented 4 years ago

Does $HOME/.local/MangoHud/libMangoHud.so exist? Same with $HOME/.local/share/villain/implicit_layer.d/mangohud64.json

canalocaradoti commented 4 years ago

@telans here in my ZorinOS, there are these paths : /home/ricardo/.local/share/vulkan/implicit_layer.d/ with the mangohud64.json and /home/ricardo/.local/share/MangoHud/ with the libs libMangoHud.so and libMangoHud32.so. I'm sending a print of when I run sh with and without the sudo command. 2020-02-06_15-36

telans commented 4 years ago

Then it's strange that it doesn't load. Do you have vulkan-icd loader installed? Or in other words, does DXVK work on your system?

canalocaradoti commented 4 years ago

@telans yes, dxvk and vulkan-icd loader are working perfectly, so much so that I play Overwatch through Lutris. I also tested it on Steam and it wasn't, with the latest version of Proton. If you can do tests on ZorinOS Core and Lite 15.1, it would be very interesting, as there are people migrating to this OS.

guihkx commented 4 years ago

Before I advise you to delete everything and try again, please try running the following command:

$ VK_LOADER_DEBUG=debug MANGOHUD=1 vkcube

Then, put the output of that command here in a gist and post it here.

canalocaradoti commented 4 years ago

@guihkx look man https://gist.github.com/canalocaradoti/087f96fca0d6ac35e2f1d3b7647fa9e1

guihkx commented 4 years ago

Thanks!

That's an odd output. I'm not seeing ~/.local/share/vulkan/implicit_layer.d in the manifest search path. The output appears to be truncated to me.

Just to be 100% sure, can you run the command again but redirecting the output directly to a file? Like so:

$ VK_LOADER_DEBUG=debug MANGOHUD=1 vkcube 2>log.txt

Then put the contents of log.txt in a gist as well.

canalocaradoti commented 4 years ago

Done man @guihkx log.txt

guihkx commented 4 years ago

LOL. Please try this next:

$ VK_LAYER_PATH=~/.local/share/vulkan/implicit_layers.d VK_LOADER_DEBUG=debug MANGOHUD=1 vkcube
canalocaradoti commented 4 years ago

Look man (saved it in the same file lol) log.txt

guihkx commented 4 years ago

Thanks again.

As I don't want to flood this issue with me asking you to run commands and post them here, I want to ask if you're okay to continue this discussion using MangoHud's Discord? Here's the invitation link: https://discordapp.com/invite/Gj5YmBb

The fact that we both speak Portuguese will also help, I guess. Let me know if you can or cannot talk via Discord. If you can, just look for Guilherme in the members list and message me.

guihkx commented 4 years ago

Found out what the problem is.

ZorinOS is a distro based on Ubuntu LTS, and both of them are still using an older version of glibc (2.28 and 2.27, respectively). But the pre-compiled binaries of MangoHud 0.1.0 require glibc 2.29.

Here's the info I get on Ubuntu LTS 18.04.3:

$ ldd libMangoHud*
libMangoHud32.so:
./libMangoHud32.so: /lib/i386-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./libMangoHud32.so)
./libMangoHud32.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by ./libMangoHud32.so)
    linux-gate.so.1 (0xf7f09000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7c85000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7c80000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7c61000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7adb000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf79d9000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf79bb000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf77df000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf77b3000)
    /lib/ld-linux.so.2 (0xf7f0a000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf77af000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf77a8000)
    libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf778b000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7781000)
libMangoHud.so:
./libMangoHud.so: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./libMangoHud.so)
./libMangoHud.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by ./libMangoHud.so)
    linux-vdso.so.1 (0x00007ffebfb89000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f48f19cc000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f48f17c8000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f48f15a9000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f48f1220000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f48f0e82000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f48f0c6a000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f48f0879000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f48f0651000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f48f1d04000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f48f044d000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f48f0247000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f48f0032000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f48efe2a000)

So, right now, a solution for users of these distros, would be compiling MangoHud yourself. It's really easy, just take a look at the README.

Nonetheless, I don't see why the next release of MangoHud couldn't be compiled using a LTS distro, such as Ubuntu LTS.

flightlessmango commented 4 years ago

Nonetheless, I don't see why the next release of MangoHud couldn't be compiled using a LTS distro, such as Ubuntu LTS.

I have tried to solve that problem like that before, but to no avail. But it has been some time since last. Also shouldn't it have worked when he compiled it without errors?

guihkx commented 4 years ago

In this case, I believe @canalocaradoti didn't compile MangoHud, he just tried the pre-compiled release.

guihkx commented 4 years ago

Though I can't confirm this with him right now because he's not on Discord atm.

guihkx commented 4 years ago

Okay, so I got the confirmation that @canalocaradoti did try compiling MangoHud using build.sh.

But since he's on Zorin OS, the script currently doesn't detect it to install the dependencies. And even after manually adding Zorin OS here, some dependencies still couldn't be installed because the script relies on the return code of dpkg -l <package> to determine if a package is installed or not.

I don't know much about Ubuntu, but this guy on Ask Ubuntu said:

Do not depend on the exit code of dpkg -l packagename, as it might return with a 0 exit code even if the package is not fully installed - see: github.com/bitrise-io/bitrise/issues/433

So after he manually installed the dependencies, the compilation part went just fine.

However, I believe we could add to the README more generic instructions on how to manually compile and install MangoHud, since it'd be virtually impossible to add every single Ubuntu-based distro to the script.

Of course, I also understand that end-users should be preferably using the pre-compiled release, so hopefully the next version can be compiled on Ubuntu LTS, for greater compatibility? Thanks.

Anyway, I think we can close this one now.