MangoHud icon indicating copy to clipboard operation
MangoHud copied to clipboard

Userguide still sucks, 3 years later..

Open ruthan opened this issue 1 year ago • 4 comments

Hi, im back few years later and project description still sucks :( I lost a hour trying to madness like this nonsense: LD_PRELOAD=/usr/lib/mangohud/lib32/libMangoHud.so:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so steam steam://rungameid/2200 Because description is not for BFU. There is not even clear how to find out if you lib32 or lib64 for LD_PRELOAD..

I had to on Mint23, build MangoHud to make is working with Goverlay, like 1 GB of libs and building support files to download, 15 minutes of compiling on my machine.. to find out that Goverlay is mostly preview of 2 simpless rotating cubes and gears.. yeah and RivaTurner lite monitoring parameters enabler..

There should be examples of LD_Preload and libMangoHud_dlsym.so

There should be in bold text, that you should click on Steam game, by rigth mouse then propeties, general and add to lauch option copy paste this string: mangohud %command% and %command% does not mean some text variable to replace or find out by user, as it usually in guides means.. and For vulkan use: 2 simple screenshots added to guide would do wonders, picture is better than 1000 words sometimes.

So hint how to discover if game is OpenGL or Vulkan would be nice too, or even autodetetion by Mangohud, it can clear detect DKVK without extra hint.

Just my 2 cents, im creating issues not bug.. and this are users for sure..

ruthan avatar Sep 16 '24 21:09 ruthan

https://github.com/flightlessmango/MangoHud?tab=readme-ov-file#normal-usage

Description is very clear and very very easy. You likely didnt read?

If you did read; can you tell which part confused you?

To enable the MangoHud overlay layer for Vulkan and OpenGL, run :

mangohud /path/to/app

For Lutris games, go to the System options in Lutris (make sure that advanced options are enabled) and add this to the Command prefix setting:

mangohud

For Steam games, you can add this as a launch option:

mangohud %command%

Or alternatively, add MANGOHUD=1 to your shell profile (Vulkan only).

There isn't a single word in here that would lead user to ld preload for Steam games with appid?

Did you get such "tips" from ProtonDB etc?

Leopard1907 avatar Sep 16 '24 23:09 Leopard1907

Its lost cause. I read it in the past and now and made same mistake twice, because its not clear. I wrote exactly why in my previous post. Launch option could mean also more than 1 thing, assume that user know nothing about that problem, that is not developer and provide step by step tutorial could save a lot of time.

I can only add "Or alternatively, add MANGOHUD=1 to your shell profile (Vulkan only)." again it would be nice to tell, where shell profile is assume that is bash and give user specific example..

By the way, i have some distros installed and it seems, that even with same game and same steam version, mangohud success rate depends heavy on installed Nvidia driver version or kernel. I was testing with Nvidia drivers 470 success rate was poor and later with Nvidia drivers 550 and HUD appeared much more often, almost in every game and tested same games sample. Problem could be in distro specific thing or if MangoHud was compiled locali. In teste it with Manjaro up to date expect grahics drivers - 470, Ubuntu 24.04 and Fedora 40.

ruthan avatar Sep 19 '24 14:09 ruthan

@ruthan there is some constructive feedback here. Are you able to submit a PR?

gmbeard avatar Sep 27 '24 19:09 gmbeard

1-) Launch option is a common term, even on Windows because that is exactly how it is called by Steam, the very own app that readme calls out.

https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955

Above link is the first result that came up when i searched "steam launch option" in search engine.

2-) Adding that to your shell is not actually a recommended usage style, because one would not want Mangohud displayed by default on every other Vulkan surface on their system ( unless disabled by blacklist itself by default ).

3-) 470 driver is not even supported by Nvidia ( only security fixes ) so thinking Mangohud would support it is a wishful thinking.

Furthermore current DXVK and vkd3d-proton both require Vulkan 1.3 which 470 driver of Nvidia only does Vulkan 1.2. So not supported by Proton itself too. Unless one swaps it's dxvk and vkd3d-proton with 1.10.3 version and 2.6 version respectively by themselves. Which most people do not.

Their Windows only games fails at start due to not meeting those reqs, they just put whatever they can find in ProtonDB comments to their launch options, one of them is usually PROTON_USE_WINED3D=1 %command% despite it is not actually required for a supported config from Proton POV.

Which makes games launch on those systems, with a downside. With Wined3d usage and with some OpenGL games too, hud only appears if one use Mangohud as mangohud --dlsym but since they don't like to read readmes and do some research on their own, they miss this.

https://github.com/flightlessmango/MangoHud?tab=readme-ov-file#opengl

All the points you've made are a cumulative result of end users errors in my opinion, commonly referred as PEBKAC.

Readme is clear and easy to digest. Readme doesn't intent to teach one "how to use Steam itself" or "how to use Lutris" or "get familiar with Linux, Linux 101 time" by any means to keep it clear.

Leopard1907 avatar Sep 28 '24 00:09 Leopard1907

to add insult to injury: @ruthan if you not gained the required skills in the past 3 years to comprehend that "copy mangohud %command% into launch options" means exactly THAT - copying the very string mangohud %command% as is into the games specific launch options in steam - then the problem is clearly on your end blaming this project by "%command% usually is a placeholder" - uhm - NOPE - it's NOT - in fact it's a windows specific substitution - like %APPDATA% - and by no means any kind of place holder in any documentation neither for linux nor for windows - docs usually structured somewhat like this:

binary [optional option] <required paramter>

the readme doesn't mention LD_PRELOAD anywhere - where you got this from? and even GOverlay is mentioned only once as a graphical tool to manage configs you not just don't understand the readme but failed to learn how to use linux in the past 3 years - please, spare us all your false blame and switch back to windows - as you lack even the most basic of required skills - or to fix this issues title: not the readme still suxx 3 years later - but you!

n0xena avatar Oct 27 '24 03:10 n0xena

This is old mainframe logic, what make desktop Linux back :(

Developer can make app more user friendly, ergonomic, intuitive - more seamless, but rather blame user for not reading enough. Steam OS / Steam deck and other more friendly user distribution as Mint, MX, Manjaro, are successful, because trying to move away from this view, but they are still suck in half of this way.

Typical Linux desktop installation have now 4000+ packages, so assume that user would know / remember all of them is way to hell.

I dont have to sorry, i described my experience, how it happened, that i lost quite a lot time trying to make it working and suggested what to do to make user experience better and its imho valid topic. There is analogy with videogames, its like games controlls, there is quite and lot good which were killed by bad controllers design, some as inventory management etc.

Linux SW in general needs much better GUI design, because its usually done by programmer and they are closed in there own bubble and think than user experience is good enough.

Readme does mention LD_PRELOAD: https://github.com/flightlessmango/MangoHud

Mangohud not even provide, some basic --help info.. its not rocket science to add at least hyperlink to Github page.. Also missing exception handling is poor, from programming best practice standards. When you use mangohud %command% there should at least some error printed into console or some log / windows popup, when it fails to work..

Regardless i made error with launch option.. I did next thing again i burned quite a lot of time to make Unigine Heaven working with Mangohud. I had to analyze what its launcher launching, dig deep into its logic.. and find out what binary is launching and with which parameters to make it working with Mangohud, because simple mangohud %startLauncher% was not working with any error message..

ruthan avatar Oct 27 '24 12:10 ruthan

Be the change you want to see! Create a PR and improve the readme.

flightlessmango avatar Oct 27 '24 15:10 flightlessmango

I would like to, but i dont have enough knowledge / skill. I would add LD_Preload example.

  • Add some simple example how to monitor Unigine Heaven (i made it working, but probably not easy way) and Quake III Arena. It would need something like compatibility community database framework same as some example game emulators have. Or some compatibility forum like MSI Afterburner section on Guru3D.

    Same with code, i would add exception handling if mangohud someApp, fails.. to log into console what was wrong, add help hyperlink as mangohud --help or -H

    Im mainly designer (no even classical for desktop apps, but mainly aim on videogames or webs) so i can tell what is missing and how it should look, but i cant implement it easily. I have some coding skills from ASM to C#/Java gathered in 30 years, but im not using them on daily basis and Linux C++ is not my cap of tea, im too used automatic memory management and garbage collection and easy to code Visual Studio / InteliJ environment etc. On Linux im just user and not even on daily basis, i have some periods when i use Linux daily for month or two and after i have for example few months period when i using it very rarely for few tools like Gparted / Qemu KVM or something what easier to do on Linux or impossible on Windows or MacOS, WSL or Cygwin etc..

ruthan avatar Nov 05 '24 12:11 ruthan

Just general experience (my console output) when he wanted to use 32 version on fresh Ubuntu virtual..

There are mistakes, just keep it real. On the stard of github guide is few compile commands, so user says, ok.. but after these commands are real dependencie, their names could get pretty tricky on you distro, especially if you are not detaily graphics developer, i dunno where i need to install some lib, where normal package and where dev version etc, there is needed nvidia package on not nvidia setup etc.. But ok, but after all this compiling part for delevolers.. Is actually continue of info for with text in sense by the way you can skip all of this help by using precompiled package.

I compiled 64 bit version after like hour messing with dependencies and after i tried to compile 32bit version, which i actualy need and it failed on 107 of 108 steps :(

Its real logical mess from how Table of Contest and document or text should be structuralized.

If someone wonder why Linux has 2% of users, its actually this, developers waste users time thanks their laziness, in some vain attemp to teach them more about using of Linux. Its not working for most of users, you will never remember exactly names of packages, some cumbersome errors message and where was exactly the problem..

Lets say than only 1000 of people what to use that 32 bit version.. and it take them 30 mints, its 500 hours burned, i expect that create debian package would be max few hours of developers site.

UserExperience.txt

ruthan avatar Nov 21 '24 02:11 ruthan

Another issues with not great documentation:

  1. This part "If you do not wish to compile anything, simply download the file under Releases, extract it, and from within the extracted folder in terminal, execute:

./mangohud-setup.sh install" There is not actually told which artefact use should user, user has to guess which package include setup.sh , there is albo lib32-* package and its not clear if is or not included in package with setup and even it is, if it would be installed together with 64bit package. There is also mess with versioning: There some 7.2.1 - packages user would think that he need these.. But package with setup, is actually some MangoHud-0.7.2.r0.g7b80f73.tar.gz So 7.2.r0 - which looks like some older one.. and unclear how to understand 7.2.1 vs 7.2.r0 - what is actually newer.

2)In documentation is still mentioned debian 32bit package which is simply not true, package is not existing for long time.. "Optionally, if you also need MangoHud for 32-bit applications, execute:

sudo apt install mangohud:i386 "

ruthan avatar Nov 21 '24 19:11 ruthan