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.45k stars 287 forks source link

Suggestions for Improve mangohud & Dunno(s) #509

Closed inukaze closed 1 year ago

inukaze commented 3 years ago

Hi there yestarday i test again MangoHud. (and GOverlay but that is another theme). well i know the project is too much new and i understand you need test and see which things are better improve first.

Well yesterday testing with Tibia Linux client (64 Bits) i notice some weird in % of GPU Tibia - 2Mins para Recuperar 1 de Soul

Right now I test glxgears with the follow command: reset ; MANGOHUD_DLSYM=1 mangohud glxgears

Command Output :

skipping config: /usr/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/glxgears.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.1929". MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: XNVCtrl is using display :0 MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. Failed to query attribute '53'. 275 frames in 5.0 seconds = 54.998 FPS

Then i decide to test with « Sega Outrun 2006 » using « Wine 1.8.6 » ( 32 Bits ) again to the terminal , enter in the game directory, and use environment variables for set the wine version i wish to use and the architecture of wine

cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006" ; \
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver" ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32

Then is moment for try the follow command reset ; MANGOHUD_DLSYM=1 mangohud wine OR2006C2C.EXE

Command output :

ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

Well i notice the follow thing :

ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

I think this had two way for fix, but first i go to analyze the mangohud bash script, right now have this content :

#!/bin/sh

if [ "$#" -eq 0 ]; then
    programname=`basename "$0"`
    echo "ERROR: No program supplied"
    echo
    echo "Usage: $programname <program>"
    exit 1
fi

if [ "$1" = "--dlsym" ]; then
    MANGOHUD_DLSYM=1
    shift
fi

MANGOHUD_LIB_NAME="/usr/lib/mangohud/\$LIB/libMangoHud.so"

if [ "$MANGOHUD_DLSYM" = "1" ]; then
    MANGOHUD_LIB_NAME="/usr/lib/mangohud/\$LIB/libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi

# Preload using the plain filesnames of the libs, the dynamic linker will
# figure out whether the 32 or 64 bit version should be used, and will search
# for it in the correct directory
LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/mangohud/\$LIB/"

exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}" "$@"

Here the thing is simple, the script not had defined the LIB variable. then i think this have two ways for fix.

First, the simple way, just adjusting script and leave the follow content

#!/bin/sh

#Inukaze

ARCH=$(uname -m)

if [ "$ARCH" = "i486" ]; then
  LIB="lib32"
fi

if [ "$ARCH" = "i586" ]; then
  LIB="lib32"
fi

if [ "$ARCH" = "i686" ]; then
  LIB="lib32"
fi

if [ "$ARCH" = "x86_64" ]; then
  LIB="lib64"
fi
#Inukaze

if [ "$#" -eq 0 ]; then
    programname=`basename "$0"`
    echo "ERROR: No program supplied"
    echo
    echo "Usage: $programname <program>"
    exit 1
fi

if [ "$1" = "--dlsym" ]; then
    MANGOHUD_DLSYM=1
    shift
fi

MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud.so"

if [ "$MANGOHUD_DLSYM" = "1" ]; then
    MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi

# Preload using the plain filenames of the libs, the dynamic linker will
# figure out whether the 32 or 64 bit version should be used, and will search
# for it in the correct directory
LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/mangohud/$LIB/"

exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}" "$@"

PRO : This version of script, works perfectly with native games of 64 Bits CON : This does not work for compat layers like Wine or Proton when need run 32 Bits Games.

Second way : i am thinking is better use the tool "file" for determinate the "Architecture" of file.

for example when use file with a native file : file /usr/bin/pcsxr32

/usr/bin/pcsxr32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, stripped

then is prefer just trim the need part file /usr/bin/pcsxr32 | cut -c26-27

32

and then obtain "32" for the 32 Bits of this executable, in the case of 64 Bits

file /usr/bin/pcsxr64

/usr/bin/pcsxr64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, with debug_info, not stripped

then is prefer just trim the need part file /usr/bin/pcsxr64 | cut -c23-24

64

and then obtain "64" for the 64 Bits of this executable.

The problem with this method is not very accurate. better is use this another command

od -An -t x1 -j 4 -N 1 /usr/bin/pcsxr32

01

od -An -t x1 -j 4 -N 1 /usr/bin/pcsxr64

02

have a one blank space before the 0 in both cases is " 0?" In ELF Format ( Just for Native FIles ) 01 for 32 Bits 02 for 64 Bits

well then for windows file objdump -f bin64.exe | grep "pei-" | awk '{print $5}'

pei-x86-64

objdump -f bin32.exe | grep "pei-" | awk '{print $5}'

pei-i386

the objdump can be use for determine the native binary executables too :

objdump -f /usr/bin/pcsxr64

/usr/bin/pcsxr64: formato del fichero elf64-x86-64 arquitectura: i386:x86-64, opciones 0x00000112: EXEC_P, HAS_SYMS, D_PAGED dirección de inicio 0x0000000000408020

Well the unique info can be useful for use with mangohud are elf64-x86-64 and i386:x86-64, then can be isolate by this way

objdump -f /usr/bin/pcsxr64 | sed -n 2p | awk '{print $5}'

elf64-x86-64

objdump -f /usr/bin/pcsxr64 | sed -n 3p | awk '{print $2}' | sed '$ s/,$//g'

i386:x86-64

objdump -f /usr/bin/pcsxr32

/usr/bin/pcsxr32: formato del fichero elf32-i386 arquitectura: i386, opciones 0x00000112: EXEC_P, HAS_SYMS, D_PAGED dirección de inicio 0x0804e3e3

objdump -f /usr/bin/pcsxr32 | sed -n 2p | awk '{print $5}'

elf32-i386

objdump -f /usr/bin/pcsxr32 | sed -n 3p | awk '{print $2}' | sed '$ s/,$//g'

i386

well i think is most important improve the script for determine if binary executable is 32 Bits or 64 Bits, after detect that, use the mangohud with the libs mangohud need for run.

Well in some hours or days i share my own version of mangohud script for run it determinating the binary executable. by the moment the things i feel should be improve, apart of the script.

GOVerlay The MangoHud should can be positioning in any part of screen, please use a thing for determinate the resolution in use, and in base of that, became in something relative for use pixel position for put the hud in any part the user need.

The GOverlay i need a desing of that GUI can be use in 1024x768, because is the resolution i ever use. but the minimal size of window is huge for my resolution : GOverlay

i need a better scalable gui.

Well returning to the mango, and the thing is not getting the % of use from GPU. well i think you should need use the same method as conky for execute external commands. but first i am using nvidia drivers 304.137 i can use the nvidia-settings for get information

nvidia-settings -q all | grep "Attribute 'GPU" | awk '{print $1,$2}'

Attribute 'GPUMemoryInterface' Attribute 'GPUCoreTemp' Attribute 'GPU2DClockFreqs' Attribute 'GPU3DClockFreqs' Attribute 'GPUDefault2DClockFreqs' Attribute 'GPUDefault3DClockFreqs' Attribute 'GPUCurrentClockFreqs' Attribute 'GPUCurrentProcessorClockFreqs' Attribute 'GPUCurrentClockFreqsString' Attribute 'GPUErrors' Attribute 'GPUPowerSource' Attribute 'GPUCurrentPerfLevel' Attribute 'GPUAdaptiveClockState' Attribute 'GPUPerfModes' Attribute 'GPUMemoryInterface' Attribute 'GPUCoreTemp' Attribute 'GPU2DClockFreqs' Attribute 'GPU3DClockFreqs' Attribute 'GPUDefault2DClockFreqs' Attribute 'GPUDefault3DClockFreqs' Attribute 'GPUCurrentClockFreqs' Attribute 'GPUCurrentProcessorClockFreqs' Attribute 'GPUCurrentClockFreqsString' Attribute 'GPUPowerSource' Attribute 'GPUCurrentPerfLevel' Attribute 'GPUAdaptiveClockState' Attribute 'GPUPerfModes' Attribute 'GPUPowerMizerMode' Attribute 'GPUCurrentFanSpeed' Attribute 'GPUFanControlType' Attribute 'GPUFanTarget'

For example i had 2 GB of Memory but if i want to use memory in use i can use the follow command : echo "$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t) MB" but if i want a constant monitoring of that vale i prefer use : watch -t -n0.1 'echo "$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t) MB"'

Well the anothers attributed can be very useful for the hud :

Attribute 'VideoRam' Attribute 'TotalDedicatedGPUMemory' Attribute 'UsedDedicatedGPUMemory'

Well you can use something like to calculate and get the % of usage of GPU :

nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory | awk '{usage=('"$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t)"')*100/('"$(nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory -t)"')} END {print usage "%"}' | sed -e 's/.[0-9].//g'

3%

nvidiame

Or you can try with watch command watch -t -n0.1 -t echo $(nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory | awk '{usage=('"$(nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t)"')*100/('"$(nvidia-settings -q [gpu:0]/TotalDedicatedGPUMemory -t)"')} END {print usage "%"}' | sed -e 's/.[0-9].//g')

Dunno what is : Failed to query attribute '53'. ?

Well that is all for now, i am going to make my own version of /usr/bin/mangohud script for use the libs the game executable binary needs for the mangohud can be active and use.

flightlessmango commented 3 years ago

attribute 53 is NV_CTRL_STRING_GPU_UTILIZATION, GPU Load. It seems like there isn't support for your graphics cards for that metrics in nvctrl

jackun commented 3 years ago

Here the thing is simple, the script not had defined the LIB variable. then i think this have two ways for fix.

$LIB is a dynamic/runtime linker's (whatever you wanna call it) built-in "variable" (notice the backslash so bash would leave it alone), you don't need to define it yourself.

inukaze commented 3 years ago

attribute 53 is NV_CTRL_STRING_GPU_UTILIZATION, GPU Load. It seems like there isn't support for your graphics cards for that metrics in nvctrl

Thank you very much for the answer :D. Well if possible use an external command to get the GPU usage ? like the command i use on bash.

Here the thing is simple, the script not had defined the LIB variable. then i think this have two ways for fix.

$LIB is a dynamic/runtime linker's (whatever you wanna call it) built-in "variable" (notice the backslash so bash would leave it alone), you don't need to define it yourself.

That thing is not working, because of that i prefer fix by my hand. and well i am working on my own version of the mangohud script.

jackun commented 3 years ago

That thing works fine, you can ignore that LD_PRELOAD spam if HUD works. MangoHud installs 64bit libs to /usr/lib/mangohud/lib as that's how Arch Linux does it. Some distros expect lib to be 32bit instead (even on 64bit os, weirdly) but should finally manage to load it from i386-linux-gnu etc folder symlink.

inukaze commented 3 years ago

That thing works fine, you can ignore that LD_PRELOAD spam if HUD works. MangoHud installs 64bit libs to /usr/lib/mangohud/lib as that's how Arch Linux does it. Some distros expect lib to be 32bit instead (even on 64bit os, weirdly) but should finally manage to load it from i386-linux-gnu etc folder symlink.

that just work for 64 Bits binary executables, with the 32 bits binary executable the mangohud never start.

all distros can use /lib /lib64 /usr/lib /usr/lib64

they are the common folders for 32 bits libs and 64 bits libs, for all GNU distros, the folders like "/usr/lib/i386-linux-gnu" or "/usr/lib/x86_64-linux-gnu" or "/usr/lib/linux-gnu-amd64" are just expected on Debians. and well not have much sense because some packages of 64 Bits replace libs of 32 Bits, because ever the most important package are installed on /usr/lib, without distintion of 32 Bits or 64 Bits. like "nvidia", "sdl" / "sdl1.2" / "sdl2"

Just debians use /lib and /usr/lib for both architectures, another distros like ArchLinux, Slackware, GoboLinux, use the common paths like the software expect 32 Bits and/or 64 Bits libs.

jackun commented 3 years ago

Problem probably is that there are files in /usr/lib/mangohud/lib. Should probably leave just /usr/lib/mangohud/lib32 and /usr/lib/mangohud/lib64 and add i386-linux-gnu etc symlinks to these.

E: Crap, seems it doesn't search in other "LD_LIBRARY_PATH"'s if LD_PRELOAD path is absolute.

inukaze commented 3 years ago

Hi there again. well i wrote two versions of my script

1 using OD :

#!/usr/bin/env bash

# Inukaze :
Nombre="MangoHud"
Ruta_Actual="$PWD" &> /dev/null
OBJETIVO="$@"
OBJETIVO=$(od -An -t x1 -j 4 -N 1 "$1")

if [ "$OBJETIVO" == " 02" ]; then
        export LIB="lib64"
fi

if [ "$OBJETIVO" == " 01" ]; then
        export LIB="lib32"
fi

#MangoHud :
if [ "$#" -eq 0 ]; then
    programname=`basename "$0"`
    echo "ERROR: No program supplied"
    echo
    echo "Usage: $programname <program>"
    exit 1
fi

if [ "$1" = "--dlsym" ]; then
    MANGOHUD_DLSYM=1
    shift
fi

MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud.so"

if [ "$MANGOHUD_DLSYM" = "1" ]; then
    MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi

# Preload using the plain filesnames of the libs, the dynamic linker will
# figure out whether the 32 or 64 bit version should be used, and will search
# for it in the correct directory
LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/mangohud/$LIB/"

exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}" "$@"

2 using objdump :

#!/usr/bin/env bash

# Inukaze :
OBJETIVO=$(objdump -f "$1" | sed -n 2p | awk '{print $5}' | sed '$ s/,$//g')

#OBJDUMP :
if [ "$OBJETIVO" == "elf64-x86-64" ]; then
        export LIB="lib64"
fi

if [ "$OBJETIVO" == "pei-x86-64" ]; then
        export LIB="lib64"
fi

if [ "$OBJETIVO" == "elf64-x86-64" ]; then
        export LIB="lib64"
fi

if [ "$OBJETIVO" == "elf32-i386" ]; then
        export LIB="lib32"
fi

if [ "$OBJETIVO" == "pei-i386" ]; then
        export LIB="lib32"
fi

if [ "$OBJETIVO" == "i386" ]; then
        export LIB="lib32"
fi

#MangoHud :
if [ "$#" -eq 0 ]; then
    programname=`basename "$0"`
    echo "ERROR: No program supplied"
    echo
    echo "Usage: $programname <program>"
    exit 1
fi

if [ "$1" = "--dlsym" ]; then
    MANGOHUD_DLSYM=1
    shift
fi

MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud.so"

if [ "$MANGOHUD_DLSYM" = "1" ]; then
    MANGOHUD_LIB_NAME="/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi

# Preload using the plain filesnames of the libs, the dynamic linker will
# figure out whether the 32 or 64 bit version should be used, and will search
# for it in the correct directory
LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/mangohud/$LIB/"

exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}"  "$@"

3 - After a lot of test i don't find the way for test with Win32 APP, like a 32 Bits windows binary executable. Then i use the follow commands :

reset
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver"  ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32  ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1

cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
bash -x mangohud-objdump "$WINELOADER" OR2006C2C.EXE

++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE ++ awk '{print $5}' ++ sed -n 2p ++ sed '$ s/,$//g'

  • OBJETIVO=elf32-i386
  • '[' elf32-i386 == elf64-x86-64 ']'
  • '[' elf32-i386 == pei-x86-64 ']'
  • '[' elf32-i386 == elf64-x86-64 ']'
  • '[' elf32-i386 == elf32-i386 ']'
  • export LIB=lib32
  • LIB=lib32
  • '[' elf32-i386 == pei-i386 ']'
  • '[' elf32-i386 == i386 ']'
  • '[' 2 -eq 0 ']'
  • '[' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine = --dlsym ']'
  • MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
  • '[' 1 = 1 ']'
  • MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
  • LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
  • LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
  • exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ] skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-x86/1.8.6/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.88". WINE VERSION = wine-1.8.6

MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: Failed to open 32bit libXNVCtrl.so.0: libXNVCtrl.so.0: no se puede abrir el fichero del objeto compartido: No existe el fichero o el directorio MANGOHUD: XNVCtrl loader failed to load MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 246 Current serial number in output stream: 250

locate libXNVCtrl.so.0 | grep /usr/lib

/usr/lib64/libXNVCtrl.so.0
/usr/lib64/libXNVCtrl.so.0.0.0

After internet search i found this thread on nvidia forum

And then i mount a 32 Bits distro and compile again that library from there This is the Makefily edited for make the library :

# Copyright (c) 2008 NVIDIA, Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

RANLIB ?= ranlib
CFLAGS += -fPIC

all: libXNVCtrl.a libXNVCtrl.so

libXNVCtrl.a : libXNVCtrl.a(NVCtrl.o)
    $(RANLIB) $@

libXNVCtrl.so: NVCtrl.o
    $(RM) $@ $@.*
    $(CC) -shared -Wl,-soname=$@.0 -o $@.$(NVIDIA_VERSION) $(LDFLAGS) $^ -lXext -lX11
    ln -s $@.$(NVIDIA_VERSION) $@.0
    ln -s $@.0 $@

NVCtrl.o : NVCtrl.h nv_control.h NVCtrlLib.h
.INTERMEDIATE: NVCtrl.o

clean ::
    rm -f libXNVCtrl.a *.o
    rm -f libXNVCtrl.so libXNVCtrl.so.*
.PHONY: clean

Well i try again :

reset
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver"  ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32  ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1

cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
bash -x mangohud-objdump "$WINELOADER" OR2006C2C.EXE

++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE ++ sed -n 2p ++ awk '{print $5}' ++ sed '$ s/,$//g'

  • OBJETIVO=elf32-i386
  • '[' elf32-i386 == elf64-x86-64 ']'
  • '[' elf32-i386 == pei-x86-64 ']'
  • '[' elf32-i386 == elf64-x86-64 ']'
  • '[' elf32-i386 == elf32-i386 ']'
  • export LIB=lib32
  • LIB=lib32
  • '[' elf32-i386 == pei-i386 ']'
  • '[' elf32-i386 == i386 ']'
  • '[' 2 -eq 0 ']'
  • '[' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine = --dlsym ']'
  • MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
  • '[' 1 = 1 ']'
  • MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
  • LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
  • LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
  • exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ] skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-x86/1.8.6/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.106". WINE VERSION = wine-1.8.6

MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: XNVCtrl is using display :0 MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 246 Current serial number in output stream: 250

¬¬

Well i try with the mangohud script came with the package :

reset
PATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wineserver"  ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-x86/1.8.6/lib" ; \
export WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/Winepol186" ; \
export WINEDEBUG=-all ; \
export WINEARCH=win32  ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1

cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
bash -x mangohud "$WINELOADER" OR2006C2C.EXE

Here i go again xD

bash -x mangohud-objdump "$WINELOADER" OR2006C2C.EXE
++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE
++ awk '{print $5}'
++ sed -n 2p
++ sed '$ s/,$//g'
+ OBJETIVO=elf32-i386
+ '[' elf32-i386 == elf64-x86-64 ']'
+ '[' elf32-i386 == pei-x86-64 ']'
+ '[' elf32-i386 == elf64-x86-64 ']'
+ '[' elf32-i386 == elf32-i386 ']'
+ export LIB=lib32
+ LIB=lib32
+ '[' elf32-i386 == pei-i386 ']'
+ '[' elf32-i386 == i386 ']'
+ '[' 2 -eq 0 ']'
+ '[' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine = --dlsym ']'
+ MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
+ '[' 1 = 1 ']'
+ MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
+ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
+ LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
+ exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ]
skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/MangoHud.conf [ not found ]
skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ]
parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ]
MANGOHUD: Connected to D-Bus as ":1.109".
WINE VERSION = wine-1.8.6

MANGOHUD: Failed to initialize CPU power data
MANGOHUD: Failed to load NVML
MANGOHUD: XNVCtrl is using display :0
MANGOHUD: Uploading is disabled (permit_upload = 0)
Version: 4.2 
X Error of failed request:  GLXBadDrawable
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  249
  Current serial number in output stream:  253
  • '[' 2 -eq 0 ']'
  • '[' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine = --dlsym ']'
  • MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud.so'
  • '[' 1 = 1 ']'
  • MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
  • LD_PRELOAD=':/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
  • LD_LIBRARY_PATH=':/usr/lib/mangohud/$LIB/'
  • exec env MANGOHUD=1 'LD_LIBRARY_PATH=:/usr/lib/mangohud/$LIB/' 'LD_PRELOAD=:/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so' /home/inukaze/.PlayOnLinux/wine/linux-x86/1.8.6/bin/wine OR2006C2C.EXE ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

One More Time :

cd PATH="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/bin:$PATH" ; \
export WINESERVER="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wineserver"  ; \
export WINELOADER="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine" ; \
export WINEDLLPATH="$HOME/.PlayOnLinux/wine/linux-amd64/1.8.6/lib" ; \
export WINEDEBUG=-all ; \
MANGOHUD_DLSYM=1 ; export MANGOHUD_DLSYM=1

cd "$HOME/.PlayOnLinux/wineprefix/Winepol186/drive_c/SEGA/OutRun-2006/"
mangohud-objdump "$WINELOADER" OR2006C2C.EXE

++ objdump -f /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE ++ sed -n 2p ++ awk '{print $5}' ++ sed '$ s/,$//g'

  • OBJETIVO=elf32-i386
  • '[' elf32-i386 == elf64-x86-64 ']'
  • '[' elf32-i386 == pei-x86-64 ']'
  • '[' elf32-i386 == elf64-x86-64 ']'
  • '[' elf32-i386 == elf32-i386 ']'
  • export LIB=lib32
  • LIB=lib32
  • '[' elf32-i386 == pei-i386 ']'
  • '[' elf32-i386 == i386 ']'
  • '[' 2 -eq 0 ']'
  • '[' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine = --dlsym ']'
  • MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud.so
  • '[' 1 = 1 ']'
  • MANGOHUD_LIB_NAME=/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
  • LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so
  • LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/
  • exec env MANGOHUD=1 LD_LIBRARY_PATH=:/usr/lib/mangohud/lib32/ LD_PRELOAD=:/usr/lib/mangohud/lib32/libMangoHud_dlsym.so:/usr/lib/mangohud/lib32/libMangoHud.so /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/usr/lib/mangohud/lib32/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. skipping config: /home/inukaze/.config/MangoHud/wine-OR2006C2C.conf [ not found ] skipping config: /media/Compartido/Inukaze/LinuxHome/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/MangoHud.conf [ not found ] skipping config: /home/inukaze/.config/MangoHud/wine-preloader.conf [ not found ] parsing config: /home/inukaze/.config/MangoHud/MangoHud.conf [ ok ] MANGOHUD: Connected to D-Bus as ":1.114". WINE VERSION = wine-1.8.6

MANGOHUD: Failed to initialize CPU power data MANGOHUD: Failed to load NVML MANGOHUD: XNVCtrl is using display :0 MANGOHUD: Uploading is disabled (permit_upload = 0) Version: 4.2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 153 (GLX) Minor opcode of failed request: 16 (X_GLXVendorPrivate) Serial number of failed request: 249 Current serial number in output stream: 253

Next Try :

reset ; bash -x mangohud "$WINELOADER" OR2006C2C.EXE
  • '[' 2 -eq 0 ']'
  • '[' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine = --dlsym ']'
  • MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud.so'
  • '[' 1 = 1 ']'
  • MANGOHUD_LIB_NAME='/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
  • LD_PRELOAD=':/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so'
  • LD_LIBRARY_PATH=':/usr/lib/mangohud/$LIB/'
  • exec env MANGOHUD=1 'LD_LIBRARY_PATH=:/usr/lib/mangohud/$LIB/' 'LD_PRELOAD=:/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so:/usr/lib/mangohud/$LIB/libMangoHud.so' /home/inukaze/.PlayOnLinux/wine/linux-amd64/1.8.6/bin/wine OR2006C2C.EXE ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/usr/lib/mangohud/$LIB/libMangoHud.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

Well with wine does not work for me, i got some kind of issue with the 32 Bits lib, for wine you don't had some «injector» like « ssr-glinject » ?

With some native games works fine in both architectures but with anothers does not work for example

Colin McRae Rally 2.0 Remasted [ Work ] (32 Bits & 64 Bits) Mango-Hud-CMRR-32-Bits.png

Mango-Hud-CMRR-64-Bits.png

pcsxr (+ GPU Pete's XGL2 Plugin ) (Just 32 Bits, works fine) mangohud-pcsxr32-xgl2.png

pcsxr (+ GPU Mesa GL Plugin (64 Bits, works wrong) mangohud-pcsxr64-Mega-GL.png

with retroarch can work better or worse, core depend mangohud-retroarchx64-001.png mangohud-retroarchx64-002.png mangohud-retroarchx64-003.png mangohud-retroarchx64-004.png

Well with another things just dont work like Re-Volt Mighty No. 9 SuperTuxKart Shovel Knight Legend Of Grimrock Need For Speed II Special Edition HorizonChase Turbo [Unity3D Engine] Quake 3 (Team) Arena [ioquake3 engine] Return To Castle Wolfenstein [ iortcw engine ]

Quake 1 [DarkPlaces engine] mangohud-quake1-glx.png mangohud-quake1-sdl.png

Quake 2 [Yagami Quake 2] mangohud-quake2-ogl14.png mangohud-quake2-ogl32.png

System Shock [ shockolate engine ] mangohud-shockolate-opengl.png

Duke Nukem 3D [ eDuke32 engine ] mangohud-eduke32-opengl.png

Xonotic mangohud-xonotic-glx.png mangohud-xonotic-sdl.png

Enemy Territory Legacy : mangohud-etlegacy-opengl.png

GLFrontier mangohud-GLFrontier.png

The Elder Scroll III : Morrowind [ OpenMW Engine ] : mangohud-Open-MW.png

WonderBoy : The Dragon's Trap mangohud-Wonder-Boy.png