GithubHelp home page GithubHelp logo

nickguletskii / glxosd Goto Github PK

View Code? Open in Web Editor NEW
123.0 12.0 20.0 7.49 MB

GLXOSD is an extensible on-screen display (OSD)/overlay for OpenGL applications running on Linux with X11 which aims to provide similar functionality to MSI Afterburner/RivaTuner OSD. It can show FPS, frame timings, temperatures and more in OpenGL games and applications. It can also be used to benchmark games, much like voglperf.

Home Page: https://glxosd.nickguletskii.com

License: MIT License

Shell 0.38% CMake 1.69% C 13.68% Lua 84.25%
osd temperature overlay linux sensors fps

glxosd's People

Contributors

kparal avatar nickguletskii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

glxosd's Issues

symbol lookup error: /usr/lib/x86_64-linux-gnu/glxosd/libglxosd-plugins-nvidia-support.so: undefined symbol: XextFindDisplay

Running glxosd with the nvidia 337.25 drivers via optimus/primus. Crashes immediately. Output from all varations of primusrun/optirun is the same.

$ primusrun glxosd glxgears
[GLXOSD] Loading libglxosd-plugins-libsensors-support.so
[GLXOSD] Loaded libglxosd-plugins-libsensors-support.so
[GLXOSD] Loading libglxosd-plugins-nvidia-support.so
[GLXOSD] Loaded libglxosd-plugins-nvidia-support.so
glxgears: symbol lookup error: /usr/lib/x86_64-linux-gnu/glxosd/libglxosd-plugins-nvidia-support.so: undefined symbol: XextFindDisplay

Not sure whether the program needs to be updated the newer drivers, or if it's a problem with bumblebee, but figured i'd mention it here.

libstdc++ compatibility issues

Due to the stupid ABI, GLXOSD does not work in some applications on some distributions.

The only real workaround I see is rewriting the whole project from scratch without using libstdc++.

There is no ETA.

add installation instructions for Fedora and Arch

I have packaged glxosd for Fedora in a COPR repo (analogous to PPA repos in Ubuntu), and I'm going to maintain it. It's available here:
https://copr.fedorainfracloud.org/coprs/kparal/glxosd/

If you could link to it from https://glxosd.nickguletskii.com/install.html , I believe that could attract more users (esp. those not willing to compile it by hand). All the installation instructions are on the COPR page, so just a link is enough, I believe.

Also, I noticed glxosd is available for Arch:
https://aur.archlinux.org/packages/glxosd/
I don't know how anything about its maintainers there, but you might consider linking to that as well.

Thanks.

Civilization 5 segfaults on start

Using the latest GLXOSD version from the PPA on Ubuntu 14.04, 64 bit. Civ5 appears to be a 32 bit game.

/usr/bin/glxosd /home/scrawl/Steam/ubuntu12_32/steam-runtime/run.sh gdb ./Civ5XP 
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./Civ5XP...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/scrawl/Steam/SteamApps/common/Sid Meier's Civilization V/Civ5XP 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
warning: the debug information found in "./libopenal.so.1.13.0" does not match "./libopenal.so.1" (CRC mismatch).

warning: the debug information found in "./libuuid.so.1.3.0" does not match "./libuuid.so.1" (CRC mismatch).

[New Thread 0xf5019b40 (LWP 7576)]
[GLXOSD] Reading global configuration file at "/etc/glxosd.conf"...
[GLXOSD] Found key-value pair: (key: "font_name", value: "CPMono_v07 Bold")
[GLXOSD] Found key-value pair: (key: "font_size_int", value: "16")
[GLXOSD] Found key-value pair: (key: "font_colour_r_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_colour_g_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_colour_b_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_colour_a_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_r_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_g_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_b_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_a_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_outline_width_float", value: "1")
[GLXOSD] Found key-value pair: (key: "show_text_outline_bool", value: "true")
[GLXOSD] Found key-value pair: (key: "text_pos_x_int", value: "4")
[GLXOSD] Found key-value pair: (key: "text_pos_y_int", value: "4")
[GLXOSD] Found key-value pair: (key: "text_spacing_x_float", value: "0")
[GLXOSD] Found key-value pair: (key: "text_spacing_y_float", value: "0")
[GLXOSD] Found key-value pair: (key: "osd_toggle_keycombo", value: "Shift+F10")
[GLXOSD] Found key-value pair: (key: "vsync_toggle_keycombo", value: "Shift+F11")
[GLXOSD] Found key-value pair: (key: "frame_logging_toggle_keycombo", value: "Shift+F9")
[GLXOSD] Found key-value pair: (key: "frame_log_keep_in_memory_bool", value: "false")
[GLXOSD] Found key-value pair: (key: "frame_logging_message_string", value: "Logging frame timings...")
[GLXOSD] Found key-value pair: (key: "frame_logging_dump_in_progress_message_string", value: "frame_logging_dump_in_progress_message_string")
[GLXOSD] Found key-value pair: (key: "frame_log_directory_string", value: "/tmp/")
[GLXOSD] Found key-value pair: (key: "frame_logging_duration_ms", value: "0")
[GLXOSD] Found key-value pair: (key: "fps_format", value: "FPS: %1$.1f\n")
[GLXOSD] Found key-value pair: (key: "temperature_format", value: "%1$.0f C")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_format", value: "%1%:\n")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_feature_format", value: " %1%: %2%\n")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_filter", value: "NULL")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_feature_filter", value: "NULL")
[GLXOSD] Found key-value pair: (key: "nvidia_gpu_format", value: "%1% (%2%): %3%\n")
[GLXOSD] The configuration was read successfully.
[GLXOSD] Reading user's configuration file at "/home/scrawl/.config/glxosd/glxosd.conf"...
[GLXOSD] Found key-value pair: (key: "osd_toggle_keycombo", value: "Shift+F9")
[GLXOSD] The configuration was read successfully.
[GLXOSD] Loading libglxosd-plugins-libsensors-support.so
[GLXOSD] Loaded libglxosd-plugins-libsensors-support.so
[New Thread 0xf3d3db40 (LWP 7577)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf3d3db40 (LWP 7577)]
0xf77f112c in glGetIntegerv () from /usr/lib32/nvidia-352/libGL.so.1
(gdb) bt
#0  0xf77f112c in glGetIntegerv () from /usr/lib32/nvidia-352/libGL.so.1
#1  0xf7fbbf68 in glGetIntegerv () from /usr//lib/i386-linux-gnu//glxosd/libglxosd-glinject.so
#2  0x090609f2 in SDL_GL_GetAttribute ()
#3  0x0864ad24 in ASL::SDL::CreateContext(SDL_Window*, int, int, int, bool) ()
#4  0x0863e68e in CASLDisplayDeviceList::CASLDisplayDeviceList() ()
#5  0x0863e5d5 in CASLDisplayDeviceList::Instance() ()
#6  0x0858205e in IDirect3D_Mac::IDirect3D_Mac() ()
#7  0x085920bd in Direct3DCreate9 ()
#8  0x08d108d1 in FireGrafix::Enum32BitDisplayModes() ()
#9  0x086e16f9 in Civ5App::Init(char const*) ()
#10 0x0865b3ed in WinMain ()
#11 0x085f5487 in ?? ()
#12 0x085d8e3e in ThreadHANDLE::ThreadProc(void*) ()
#13 0xf7acaf70 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#14 0xf792ebee in clone () from /lib/i386-linux-gnu/libc.so.6
(gdb) 
(gdb) info shared
From        To          Syms Read   Shared Object Library
0xf7fdc860  0xf7ff47ac  Yes (*)     /lib/ld-linux.so.2
0xf7fd2900  0xf7fd3724  Yes (*)     /usr//lib/i386-linux-gnu//glxosd/libglxosd-elfhacks.so
0xf7fb35f0  0xf7fc75d4  Yes (*)     /usr//lib/i386-linux-gnu//glxosd/libglxosd-glinject.so
0xf7f37a70  0xf7f7c4a4  Yes (*)     /usr//lib/i386-linux-gnu//glxosd/libglxosd.so
0xf7d7f1c0  0xf7e7f618  Yes (*)     ./libcrypto.so.1.0.0
0xf7cd1b60  0xf7d251a8  Yes (*)     ./libMiles.so
0xf7c95a90  0xf7cadc54  Yes         ./libtbb.so.2
0xf7c41e00  0xf7c79348  Yes (*)     ./libssl.so.1.0.0
0xf7b141e0  0xf7ba2948  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libX11.so.6
0xf7ac8840  0xf7ad54a7  Yes (*)     /lib/i386-linux-gnu/libpthread.so.0
0xf7abb9b0  0xf7abf0ca  Yes (*)     /lib/i386-linux-gnu/librt.so.1
0xf7a3a9a0  0xf7a9e458  Yes (*)     ./libc++.so.1
0xf79f6450  0xf7a06d88  Yes (*)     ./libcxxrt.so
0xf785a420  0xf798bb6e  Yes (*)     /lib/i386-linux-gnu/libc.so.6
0xf7835820  0xf783d848  Yes (*)     ./libsteam_api.so
0xf7777d20  0xf77e33ad  Yes (*)     /usr/lib32/nvidia-352/libGL.so.1
0xf76e7e20  0xf7720fc8  Yes (*)     ./libopenal.so.1
0xf76dfad0  0xf76e096c  Yes (*)     /lib/i386-linux-gnu/libdl.so.2
0xf769d600  0xf76cb70b  Yes (*)     /lib/i386-linux-gnu/libm.so.6
0xf76800a0  0xf7693c64  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
0xf7677fb0  0xf7679c28  Yes (*)     ./libuuid.so.1
---Type  to continue, or q  to quit---
0xf7594180  0xf75a80e8  Yes         ./libiconv.so.2
0xf74f07a0  0xf755d254  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
0xf74157d0  0xf74819d8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libfreetype.so.6
0xf73de070  0xf73f9298  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libfontconfig.so.1
0xf73c5760  0xf73d2668  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libz.so.1
0xf73a9d20  0xf73ba838  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1
0xf739dec0  0xf739fb03  Yes (*)     /usr/lib32/nvidia-352/tls/libnvidia-tls.so.352.41
0xf5793a00  0xf68f0b00  Yes (*)     /usr/lib32/nvidia-352/libnvidia-glcore.so.352.41
0xf51bd730  0xf51c7df8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXext.so.6
0xf5193020  0xf51ac828  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libexpat.so.1
0xf518d9e0  0xf518e828  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXau.so.6
0xf5186d00  0xf51889a8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXdmcp.so.6
0xf504ce70  0xf50518e3  Yes (*)     /lib/i386-linux-gnu/libnss_compat.so.2
0xf50361d0  0xf50427e3  Yes (*)     /lib/i386-linux-gnu/libnsl.so.1
0xf50289e0  0xf502edef  Yes (*)     /lib/i386-linux-gnu/libnss_nis.so.2
0xf501bad0  0xf50226bb  Yes (*)     /lib/i386-linux-gnu/libnss_files.so.2
0xf7af9ae0  0xf7afee58  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXcursor.so.1
0xf7aef320  0xf7af50f8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXrender.so.1
0xf7ae8fa0  0xf7aeb708  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXfixes.so.3
0xf7ae47a0  0xf7ae5188  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXinerama.so.1
0xf4809900  0xf48144e8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXi.so.6
0xf4800130  0xf48049c8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXrandr.so.2
---Type  to continue, or q  to quit---
0xf47f9b20  0xf47fc558  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libXxf86vm.so.1
0xf411f230  0xf4149d64  Yes (*)     /usr//lib/i386-linux-gnu//glxosd/libglxosd-plugins-libsensors-support.so
0xf40af480  0xf40b5964  Yes (*)     /usr/lib/i386-linux-gnu/libsensors.so.4
(*): Shared library is missing debugging information.

configuration for hiding information

Hello,

i have a problem that glxosd reports a lot of info that i dont really need:

https://dl.dropboxusercontent.com/u/28788188/ss_08082014_20.22.58.png

how do i get rid of the most of this stuff, i could only use FPS, GPU temp and CPU temp.

i have tried glxosd.conf file for setting up "libsensors_chip_feature_filter" filters, but nothing seems to work.

also tried to comment out parameters, but that doesnt seem to be right also.

probably im stupid and missing something really simple though.

GLXOSD is not packaged for Ubuntu 14.04 Trusty Tahr.

Hi!
I am currently trying to install it on Ubuntu 14.04 64bit, when I realized that the PPA does not yet have a Trusty Tahr package. Would it be possible to add one soon?

In the meantime, I will try and compile it for myself. Any help is greatly appreciated :)

Overlay not visible in Outlast

Similar to XCOM in #19, GLXOSD corrupts the game's intro videos: (fixed by PR #50)

Once ingame, the overlay itself does not appear at all.

Also note GLXOSD displays on the game's splash screen, but in a corrupted form (fixed by PR #51).

glxosd_outlast

Using the latest version from the PPA on Ubuntu 14.04, 64 bit. Experienced the same issue with git/development.

(gdb) info shared
From                To                  Syms Read   Shared Object Library
0x00007f26e0d290a0  0x00007f26e0d4be36  Yes (*)     /home/scrawl/Steam/ubuntu12_64/gameoverlayrenderer.so
0x00007f26e0b1eb60  0x00007f26e0b1f9a3  Yes (*)     /usr//lib/x86_64-linux-gnu//glxosd/libglxosd-elfhacks.so
0x00007f26e0902650  0x00007f26e09147e5  Yes (*)     /usr//lib/x86_64-linux-gnu//glxosd/libglxosd-glinject.so
0x00007f26e0687c40  0x00007f26e06c7513  Yes (*)     /usr//lib/x86_64-linux-gnu//glxosd/libglxosd.so
0x00007f26e032f330  0x00007f26e03fe338  Yes         /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libSDL2-2.0.so.0
0x00007f26e0109d20  0x00007f26e01124da  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libsteam_api.so
0x00007f26dfedeaf0  0x00007f26dfefa968  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libexpat.so
0x00007f26dfcd68a0  0x00007f26dfcd8cf8  Yes         /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libogg.so.0
0x00007f26dfaa9530  0x00007f26dfac2e88  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libvorbis.so.0
0x00007f26df89fef0  0x00007f26df8a46d8  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libvorbisfile.so.3
0x00007f26df697af0  0x00007f26df69c6a8  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libSDL2_ttf.so
0x00007f26df4104a0  0x00007f26df470298  Yes         /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libfreetype.so.6
0x00007f26df1fb2f0  0x00007f26df201c68  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libSDL2_image.so
0x00007f26defe4070  0x00007f26deff0548  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libz.so.1
0x00007f26dedc99f0  0x00007f26dedd64a1  Yes         /lib/x86_64-linux-gnu/libpthread.so.0
0x00007f26deb1bac0  0x00007f26deb7ea1a  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
0x00007f26de7bf610  0x00007f26de82e1b6  Yes         /lib/x86_64-linux-gnu/libm.so.6
0x00007f26de5a6ad0  0x00007f26de5b6198  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
0x00007f26de1fe4a0  0x00007f26de343583  Yes         /lib/x86_64-linux-gnu/libc.so.6
0x00007f26ddeffaa0  0x00007f26ddf6c8b1  Yes (*)     /usr/lib/nvidia-352/libGL.so.1
0x00007f26ddca9350  0x00007f26ddcac33c  Yes         /lib/x86_64-linux-gnu/librt.so.1
---Type  to continue, or q  to quit---
0x00007f26ddaa3ed0  0x00007f26ddaa49ce  Yes         /lib/x86_64-linux-gnu/libdl.so.2
0x00007f26e0f5bae0  0x00007f26e0f764e0  Yes         /lib64/ld-linux-x86-64.so.2
0x00007f26dd786a70  0x00007f26dd80e7e8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
0x00007f26dd53de50  0x00007f26dd5578f8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libfontconfig.so.1
0x00007f26dd3359a0  0x00007f26dd3374e3  Yes (*)     /usr/lib/nvidia-352/tls/libnvidia-tls.so.352.41
0x00007f26db432b30  0x00007f26dc29e927  Yes (*)     /usr/lib/nvidia-352/libnvidia-glcore.so.352.41
0x00007f26da695490  0x00007f26da69f478  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXext.so.6
0x00007f26da47c520  0x00007f26da489158  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libxcb.so.1
0x00007f26da24cb20  0x00007f26da266948  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libexpat.so.1
0x00007f26da046d90  0x00007f26da047ae8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXau.so.6
0x00007f26d9e41090  0x00007f26d9e42aa8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXdmcp.so.6
0x00007f26d83042c0  0x00007f26d8308e28  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXcursor.so.1
0x00007f26d80f9910  0x00007f26d80ff898  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXrender.so.1
0x00007f26d7ef34a0  0x00007f26d7ef60d8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXfixes.so.3
0x00007f26d7cef9f0  0x00007f26d7cf0318  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXinerama.so.1
0x00007f26d7ae10b0  0x00007f26d7aeb638  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXi.so.6
0x00007f26d78d86b0  0x00007f26d78dcf08  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXrandr.so.2
0x00007f26d76d4c00  0x00007f26d76d59d8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXss.so.1
0x00007f26d74cfe50  0x00007f26d74d2708  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
0x00007f26d72918d0  0x00007f26d72bac28  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3
0x00007f26d6b19970  0x00007f26d6b4160a  Yes (*)     /usr//lib/x86_64-linux-gnu//glxosd/libglxosd-plugins-libsensors-support.so
0x00007f26d68a1460  0x00007f26d68a7694  Yes (*)     /usr/lib/x86_64-linux-gnu/libsensors.so.4
---Type  to continue, or q  to quit---
0x00007f26d669c430  0x00007f26d669d638  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libpulse-simple.so.0
0x00007f26d645df30  0x00007f26d6489268  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libpulse.so.0
0x00007f26d6203f10  0x00007f26d62392d8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libpulsecommon-1.1.so
0x00007f26d5feee60  0x00007f26d5ff26e8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libjson.so.0
0x00007f26d5de6c30  0x00007f26d5dea7d8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libwrap.so.0
0x00007f26d5b84090  0x00007f26d5bc58d8  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libsndfile.so.1
0x00007f26d5979270  0x00007f26d597b778  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libasyncns.so.0
0x00007f26d5762160  0x00007f26d576eea3  Yes         /lib/x86_64-linux-gnu/libnsl.so.1
0x00007f26d551e4a0  0x00007f26d5554648  Yes (*)     /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libFLAC.so.8
0x00007f26d527ea10  0x00007f26d52825c8  Yes (*)     /home/scrawl/Steam/SteamApps/common/Outlast/Binaries/Linux/lib/x86_64-pc-linux-gnu/libvorbisenc.so.2
0x00007f26d5053ad0  0x00007f26d5062e79  Yes         /lib/x86_64-linux-gnu/libresolv.so.2
0x00007f26d4e42010  0x00007f26d4e4a750  Yes (*)     /lib/x86_64-linux-gnu/libudev.so.1
0x00007f26d4c27610  0x00007f26d4c396ec  Yes (*)     /lib/x86_64-linux-gnu/libcgmanager.so.0
0x00007f26d4a10760  0x00007f26d4a1d12a  Yes (*)     /lib/x86_64-linux-gnu/libnih.so.1
0x00007f26d4804ce0  0x00007f26d48084c6  Yes (*)     /lib/x86_64-linux-gnu/libnih-dbus.so.1
0x00007f26d3638ec0  0x00007f26d40ecce2  Yes (*)     /home/scrawl/Steam/linux64/steamclient.so
0x00007f26d29200a0  0x00007f26d2945dee  Yes (*)     /home/scrawl/Steam/linux64/crashhandler.so
(*): Shared library is missing debugging information.

GLXOSD with Unigine Tropics - received invalid memory reference signal

Hello,
Ubuntu 14.04.3 LTS 64-bit with installed Unigine Tropics for GNU/Linux:
https://unigine.com/en/products/benchmarks/tropics
http://www.techspot.com/downloads/5802-unigine-tropics-benchmark.html

and GLXOSD of course ( https://glxosd.nickguletskii.com/install.html ) - tested with glxgears

Tropics demo is working fine by executing script file like ./1600x1200_fullscreen.sh

#!/bin/sh

export LD_LIBRARY_PATH=./bin:$LD_LIBRARY_PATH
./bin/Tropics       -video_app opengl \
                    -sound_app openal \
                    -extern_define RELEASE \
                    -system_script tropics/unigine.cpp \
                    -engine_config ../data/unigine.cfg \
                    -data_path ../ \
                    -video_fullscreen 1 \
                    -video_mode -1 \
                    -video_width 1600 \
                    -video_height 1200

but with GLXOSD it cannot run - attached log file.
[glxosd_tropics.txt](https://github.com/nickguletskii/GLXOSD/files/116466/glxosd_tropics.txt

Team Fortress 2 Not Starting

I cant start Team Fortress 2 with glxosd. When I edited the launch options the game doesn't start and when I tried starting it with the command line there is no overlay.

Implement main key modifier none

I would like to use a plain key say F10, although the text/error says:

The field modifiers in OSD plugin configuration.toggle_key_combo didn't pass validation:
A key combo's modifier list must be an array that consists of zero or more of the following
strings: shift, alt, caps, control
stack traceback:
        /usr/share/glxosd///glxosd/util/util.lua:24: in function 'log_error'
        /usr/share/glxosd///glxosd/ConfigurationManager.lua:59: in function 'validation_error'
        /usr/share/glxosd///glxosd/ConfigurationManager.lua:102: in function 'check_schema'
        /usr/share/glxosd///glxosd/ConfigurationManager.lua:115: in function 'check_schema'
        /usr/share/glxosd///glxosd/plugins/OSD/OSD.lua:87: in function 'new'
        /usr/share/glxosd///glxosd/Context.lua:104: in function 'new'
        /usr/share/glxosd///glxosd/Main.lua:48: in function '__index'
        /usr/share/glxosd///glxosd/Main.lua:99: in function </usr/share/glxosd///glxosd/Main.lua:94>

Setting modifiers={"X"} where X is empty string or "none" or "nil" will crash glxosd.

The solution now is to have it as modifiers={} aka delete quotes too.

Compatibility Issue with Unity framework

It appears there's a consistent compatibility issue with recent Unity (perhaps from version 5?) based games and GLXOSD:
I mainly tested on the many available Kickstarter Demo out there and I have been having consistent crashes aka (core dumped)"$@" whether using 32 or 64 bit binaries of games with the corresponding GLXOSD libraries.

My setup:

  • Arch Linux - 3.19.2-1-ARCH / Ubuntu 14.04.2 LTS (3.19-pf-kernel)
  • Gnome Shell - 3.14.3 / Unity
  • NVIDIA 346.47 (and versions before)

Tested on:

https://roystanross.wordpress.com/super-mario-64-hd/
https://www.kickstarter.com/projects/kavagamestudio/call-of-combat/
Among others.

GLXOSD not working with Unreal Engine 4 native demos.

I've been trying to run GLXOSD with the native Unreal Engine 4 demos available from this wiki page: LINK

These demos run on OpenGL (3.2 and greater to my understanding). When running the Elemental demo with GLXOSD, the terminal seems to say it's working, but nothing is outputted on screen.

ismail@Intel-Ubuntu:~/Desktop/Elemental Demo/Engine/Binaries/Linux$ glxosd ./Elemental
Using binned.
4.3.0-0+UE4 7038 3077 379 0
[GLXOSD] Loading libglxosd-plugins-libsensors-support.so
[GLXOSD] Loaded libglxosd-plugins-libsensors-support.so
[GLXOSD] Loading libglxosd-plugins-nvidia-support.so
[GLXOSD] Loaded libglxosd-plugins-nvidia-support.so
[GLXOSD] Reading global configuration file at "/etc/glxosd.conf"...
[GLXOSD] Found key-value pair: (key: "font_name", value: "CPMono_v07 Bold")
[GLXOSD] Found key-value pair: (key: "font_size_int", value: "38")
[GLXOSD] Found key-value pair: (key: "font_colour_r_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_colour_g_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_colour_b_int", value: "255")
[GLXOSD] Found key-value pair: (key: "text_pos_x_int", value: "4")
[GLXOSD] Found key-value pair: (key: "text_pos_y_int", value: "2")
[GLXOSD] Found key-value pair: (key: "text_spacing_x_int", value: "2")
[GLXOSD] Found key-value pair: (key: "text_spacing_y_int", value: "2")
[GLXOSD] Found key-value pair: (key: "show_text_outline_bool", value: "true")
[GLXOSD] Found key-value pair: (key: "fps_format", value: "FPS: %1$.1f\n")
[GLXOSD] Found key-value pair: (key: "temperature_format", value: "%1$i C")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_format", value: "%1%:\n")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_feature_format", value: " %1%: %2%\n")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_feature_filter", value: "NULL")
[GLXOSD] Found key-value pair: (key: "nvidia_gpu_format", value: "%1% (%2%): %3%\n")
[GLXOSD] The configuration was read successfully.
[GLXOSD] Reading user's configuration file at "/home/ismail/.glxosd/glxosd.conf"...
[GLXOSD] There is no file at "/home/ismail/.glxosd/glxosd.conf". Skipping.
[GLXOSD] Loading font "/usr/share/fonts/opentype/CPMono_v07/CPMono_v07_Bold.otf" with size 38...

Screenshot of running Elemental demo and GLXOSD, without OSD appearing.
http://i.imgur.com/Djz7jE5.png

P.S: The demos are all 64bit, and I am running on Ubuntu 14.04 64bit so there shouldn't be an issue injecting it correct?

Benchmarking mode needs to write after, not during

To make the benchmarking mode actually worthwhile, you should store the values in memory, and write to the file after, not during. This will make it more accurate, otherwise it's not going to give good readings in reality.

Add support for custom commands

This would allow a user to tailor the output of GLXOSD to their specific needs, line-by-line if they so chose. For example, one could have a ~/.glxosdrc file and specify the output of glxosd based on that similar to conky, by using individual shell commands and displaying the STDOUT from those commands.

Unable to run Make All on SteamOS

Hi,
Currently in SteamOS if I attempt to run make all after cmake -G "Unix Makefiles I will get issues with compiling when referencing the boost libraries.

The error (there's more, but the beginning pinpoints first occurrence):

[ 50%] Building CXX object src/glxosd/CMakeFiles/glxosd.dir/ConfigurationManager.cpp.o
In file included from /usr/include/boost/xpressive/detail/core/access.hpp:21:0,
                 from /usr/include/boost/xpressive/detail/core/state.hpp:18,
                 from /usr/include/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp:20,
                 from /usr/include/boost/xpressive/detail/core/matchers.hpp:17,
                 from /usr/include/boost/xpressive/regex_primitives.hpp:22,
                 from /usr/include/boost/xpressive/xpressive_static.hpp:24,
                 from /usr/include/boost/xpressive/xpressive.hpp:18,
                 from /home/desktop/Desktop/GLXOSD-master/src/glxosd/ConfigurationManager.cpp:17:
/usr/include/boost/xpressive/match_results.hpp:122:21: error: expected identifier before numeric constant
/usr/include/boost/xpressive/match_results.hpp:122:21: error: expected '}' before numeric constant
/usr/include/boost/xpressive/match_results.hpp:122:21: error: expected unqualified-id before numeric constant

I believe this occurs because of this issue here.

In SteamOS, when attempting to install the required dependencies for compiling GLXOSD, the SteamOS dev libraries seem to be different compared to the normal Debian Wheezy dev libraries for the following:
libgl1-mesa-dev libglu1-mesa-dev libfontconfig1-dev libfreetype6-dev

If I try to force the Debian packages to be installed, this is what I get:

desktop@steamos:~/Desktop/GLXOSD-master$ sudo apt-get install -t wheezy mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev libfontconfig1-dev libfreetype6-dev libsensors4-dev libboost-dev
....
The following packages have unmet dependencies:
 libfontconfig1-dev : Depends: libfontconfig1 (= 2.9.0-7.1) but 2.9.0-7.1+bsos7 is to be installed
 libfreetype6-dev : Depends: libfreetype6 (= 2.4.9-1.1) but 2.4.9-1.1+bsos7 is to be installed
 libgl1-mesa-dev : Depends: libgl1-mesa-glx (= 8.0.5-4+deb7u2) but 10.1.6-steamos-1+steamos2+bsos1 is to be installed
 libglu1-mesa-dev : Depends: libglu1-mesa (= 8.0.5-4+deb7u2) but 9.0.0-2+bsos1 is to be installed
E: Unable to correct problems, you have held broken packages.
desktop@steamos:~/Desktop/GLXOSD-master$

I can install the dependencies normally without forcing it to take from Debian's repositories, but it will mix and match. It will take the ones it can from Debian, and the above will be taken from the SteamOS repository but then the issue with the Boost library happens.

Any advice or guidance on how to overcome this problem?
If I were to build GLXOSD on the same machine, but in Ubuntu 14.10, would I be able to bring that over to SteamOS for the make install process?

drawableHandlers not thread safe

This is a theoretical issue that I haven't seen in practice, but still worth fixing?

In particular, this code:

void GLXOSD::osdHandleBufferSwap(Display* display, GLXDrawable drawable) {
...
    if (osdVisible && display && drawable) {

        auto it = drawableHandlers->find(glXGetCurrentContext());

        OSDInstance* instance;

        if (it == drawableHandlers->end()) {
            instance = new OSDInstance();
            drawableHandlers->insert(
                    std::pair(
                            glXGetCurrentContext(), instance));
        } else {
            instance = (*it).second;

glXSwapBuffers can be called from multiple threads at the same time, if they are using independent contexts. The use of drawableHandlers map isn't thread safe, inserting an element there while another thread is iterating (find) on the map will likely crash.

Does not work with Steam games on Ubuntu 15.04 64bit

Hi,
I've recently compiled GLXOSD a number of times on Ubuntu 15.04, each time I try to get it to work with games on Steam via the glxosd --steam %command% Launch option. Nothing works, not even Source games are able to launch with it anymore. The only thing GLXOSD is able to inject into is glxgears.

Here's output from a Terminal when running GLXOSD directly from a Terminal now (Cities Skylines 64bit). I'm uncertain if I'm calling it correctly for Steam:

ismail@Intel-Ubuntu:~$ glxosd --steam steam://rungameid255710
/usr/local/bin/glxosd: line 70: steam://rungameid/255710: No such file or directory

However, changing it to this now at least gets the game running:

ismail@Intel-Ubuntu:~$ glxosd steam steam://rungameid/255710

It still seems to be unable to inject itself, and this is the output:

Running Steam on ubuntu 15.04 64-bit
STEAM_RUNTIME is enabled automatically
grep: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
grep: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
grep: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
awk: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
ERROR: ld.so: object 'libglxosd-elfhacks.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libglxosd-glinject.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libglxosd.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ismail@Intel-Ubuntu:~$ 

I have libstdc++6, libstdc++6:i386, and libstdc++-4.9 which should fulfill the requirement but it still complains. A note, I previously had an issue after updating Ubuntu where GLXOSD spat out this error on compiling:

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libGL.so', needed by 'bin/libglxosd.so.2.3.3'.  Stop.
CMakeFiles/Makefile2:231: recipe for target 'src/glxosd/CMakeFiles/glxosd.dir/all' failed
make[1]: *** [src/glxosd/CMakeFiles/glxosd.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error

Looks like somehow it forgot where to look for libGL, so running this in a Terminal seemed to fix it, but I'm unsure if this is also the root cause of my issue with GLXOSD:

sudo ln -s -f -i /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so

ldconfig is telling me that libGL.so.1 -> libGL.so.346.47 which means it is using my Nvidia driver's GL which is good. It is not using Nouveau.

I make sure to clean all my directories from GLXOSD and run ./clean, before compiling and running make install each time to ensure it's not storing any old or broken files. The directories I clean out are:
/etc/glxosd.conf
/usr/local/lib/x86_64-linux-gnu/glxosd
/usr/local/bin/glxosd

I've attempted to modify the version of C++ used when compiling and tried all three

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++14")

No difference.

I've also discovered that CMAKE will complain it cannot find pthread. So, I adjusted parts of CMakeLists.txt to look like this, and this seems to allow CMAKE to find pthread:

project (glxosd C CXX)
...
##### Compiler #####
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")

Any help is greatly appreciated.

Not packaged for Ubuntu

(Previously was Debian, but I don't have the time to set up my own repo. Sorry, had to use Ubuntu PPAs.)

GLXOSD doesn't work with primusrun, unless using --steam flag.

Hello! I just discovered GLXOSD today, and ran into an issue/workaround when testing with your current Ubuntu PPA.

GLXOSD worked fine when using the Intel HD4000 chipset in my laptop, but if I used it with primusrun (which is working fine with all my apps/games) to send the output to the GK104M [GeForce GTX 670MX] video I received no output window (i.e. the glxgears/spheres windows and animations never display).

After reading your config/FAQ/Usage docs, I tried the longshot of using primusrun in conjunction with the "--steam" parameter, even though I wasn't testing with steam games nor did I even have steam loaded at the time... and amazingly it worked! I haven't looked at your code to see what the --steam parameter is actually doing, but it might be worth noting for others that it may help other use glxosd with primusrun even when running non-steam apps.

Testing:

vblank_mode=0 glxspheres64: works - 234.811252 frames/sec
vblank_mode=0 primusrun glxspheres64: works - 386.956962 frames/sec
vblank_mode=0 glxosd glxspheres64: works - 223.875207 frames/sec
vblank_mode=0 primusrun glxosd glxspheres64: No window displayed, CPUs max out until Ctrl-C.
vblank_mode=0 glxosd primusrun glxspheres64: No window displayed, CPUs max out until Ctrl-C.
vblank_mode=0 primusrun glxosd --steam glxspheres64: works - 388.984218 frames/sec
vblank_mode=0 glxosd --steam primusrun glxspheres64: works - 389.696274 frames/sec

My testing was done with Ubuntu 14.10beta, and the latest Nvidia 343.22 drivers from xorg-edgers.

Deadlock in XKeysymToKeycode

When I mashed the Shift+F9 key during a loading screen in Metro 2033: Redux, the game froze. gdb shows a deadlock with glxosd in the callstack.

First time this happened to me. I will update this ticket if it happens again.

GLXOSD commit b786796

(gdb) bt
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007f285f6fb657 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007f285f6fb480 in __GI___pthread_mutex_lock (mutex=0x28dc470) at ../nptl/pthread_mutex_lock.c:79
#3  0x00007f285ed86c33 in ?? () from /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
#4  0x00007f285ede55e1 in _XkbReloadDpy () from /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007f285ede5f84 in XKeysymToKeycode () from /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007f2860c3628b in glxosd::keyComboMatches(glxosd::KeyCombo, XKeyEvent*) () from /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so
#7  0x00007f2860bcdbdb in glxosd::GLXOSD::osdEventFilter(_XDisplay*, _XEvent*, char*) () from /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so
#8  0x00007f2860bce4e9 in glxosd::osdEventFilter(_XDisplay*, _XEvent*, char*) () from /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so
#9  0x00007f285ed749e9 in XCheckIfEvent () from /home/scrawl/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
#10 0x00007f2860ebfbe6 in XCheckIfEvent () from /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd-glinject.so
#11 0x00007f2861307e5a in XCheckIfEvent () from /home/scrawl/Steam/ubuntu12_64/gameoverlayrenderer.so
#12 0x00007f2860ecc1ca in handle_buffer_swap(_XDisplay*, unsigned long) () from /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd-glinject.so
#13 0x00007f2860ecc48a in glXSwapBuffers () from /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd-glinject.so
#14 0x00007f28612fd0a1 in glXSwapBuffers () from /home/scrawl/Steam/ubuntu12_64/gameoverlayrenderer.so
#15 0x0000000000dcabca in cb_replay(unsigned int*) ()
#16 0x0000000000db077a in backend_layer::kickoff(bool) ()
#17 0x0000000000dd48e1 in crender::render_loader() ()
#18 0x0000000000dd5043 in crender::render_internal(urender::server::presentation_mode) ()
#19 0x0000000000dd4f8d in crender::render(urender::server::presentation_mode) ()
#20 0x0000000000569ca7 in cengine::loader_render_while_loading() ()
#21 0x000000000056a40c in cengine::loader_execute(char const*, int, int) ()

Dota 2 Reborn crashes upon start up [Segmentation Fault]

Dota 2 Reborn is the Source 2 version of Dota 2, which will very soon replace Dota 2 entirely (Source 1 version). Dota 2 needed the libstdc++ files in Steam to be renamed before GLXOSD could work with it.

Dota 2 Reborn's crash seems to stem from something else since I've renamed both the 32bit and 64bit libstdc++ files under the following directories and it still crashes:

/home/ismail/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu
/home/ismail/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu

Dota 2 Reborn is a 64bit game and looks like it runs an OpenGL 3.3 Core profile.

I see GLXOSD working momentarily, then it crashes. This is what spews out in the Terminal:

Setting breakpad minidump AppID = 373300
Dongle firmware /home/ismail/.local/share/Steam/linux64/../controller_base/d0ggle.bin loaded, version 1435869091.
[GLXOSD] Reading global configuration file at "/etc/glxosd.conf"...
[GLXOSD] Found key-value pair: (key: "font_name", value: "CPMono_v07 Bold")
[GLXOSD] Found key-value pair: (key: "font_size_int", value: "72")
[GLXOSD] Found key-value pair: (key: "font_colour_r_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_colour_g_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_colour_b_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_colour_a_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_r_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_g_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_b_int", value: "0")
[GLXOSD] Found key-value pair: (key: "font_outline_colour_a_int", value: "255")
[GLXOSD] Found key-value pair: (key: "font_outline_width_float", value: "1")
[GLXOSD] Found key-value pair: (key: "show_text_outline_bool", value: "true")
[GLXOSD] Found key-value pair: (key: "text_pos_x_int", value: "15")
[GLXOSD] Found key-value pair: (key: "text_pos_y_int", value: "15")
[GLXOSD] Found key-value pair: (key: "text_spacing_x_float", value: "0")
[GLXOSD] Found key-value pair: (key: "text_spacing_y_float", value: "0")
[GLXOSD] Found key-value pair: (key: "osd_toggle_keycombo", value: "Shift+F10")
[GLXOSD] Found key-value pair: (key: "frame_logging_toggle_keycombo", value: "Shift+F9")
[GLXOSD] Found key-value pair: (key: "frame_log_keep_in_memory_bool", value: "false")
[GLXOSD] Found key-value pair: (key: "frame_logging_message_string", value: "Logging frame timings...")
[GLXOSD] Found key-value pair: (key: "frame_logging_dump_in_progress_message_string", value: "frame_logging_dump_in_progress_message_string")
[GLXOSD] Found key-value pair: (key: "frame_log_directory_string", value: "/tmp/")
[GLXOSD] Found key-value pair: (key: "frame_logging_duration_ms", value: "0")
[GLXOSD] Found key-value pair: (key: "fps_format", value: "FPS: %1$.1f\n")
[GLXOSD] Found key-value pair: (key: "temperature_format", value: "%1$.0f C")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_format", value: "%1%:\n")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_feature_format", value: " %1%: %2%\n")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_filter", value: "NULL")
[GLXOSD] Found key-value pair: (key: "libsensors_chip_feature_filter", value: "NULL")
[GLXOSD] Found key-value pair: (key: "nvidia_gpu_format", value: "%1% (%2%): %3%\n")
[GLXOSD] The configuration was read successfully.
[GLXOSD] Reading user's configuration file at "/home/ismail/.config/glxosd/glxosd.conf"...
[GLXOSD] There is no file at "/home/ismail/.config/glxosd/glxosd.conf". Skipping.
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70: non-double matrix element
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 78: saw unknown, expected number
ERROR: ld.so: object '/home/ismail/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/ismail/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/ismail/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
crash_20150904013826_1.dmp[6018]: Uploading dump (out-of-process)
/tmp/dumps/crash_20150904013826_1.dmp
/home/ismail/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh: line 98:  6002 Segmentation fault      (core dumped) ${STEAM_RUNTIME_PREFIX} ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
Game removed: AppID 570 "Dota 2", ProcID 6002

Dota 2 (Source 1 version) works fine with GLXOSD.

Ubuntu 15.04 64bit
Nvidia GTX680 on 355.06 drivers

Is there another type of library file besides libstdc++.so.6 and libstdc++.so.6.0.18 that needs renaming?

Display the OpenGL version of the underlying application/game

Hi,
This is a feature request. Would it be possible to add to the overlay information on what version of OpenGL the current game/application is using?

Something akin to MSI Afterburner's ability to detect what version of Direct3D the game/application is using. For MSI Afterburner, it looks something like this:

It doesn't have to look exactly like that, but the ability to automatically determine the OpenGL version and display it would be a great addition.

Dota2 (steam) always crashes, when run with glxosd

I have Ubuntu 14.04 and GeForce 755M (lenovo ideapad y510p). Dota2 without glxosd runs fine, but when I try glxosd --steam %command% and launch it, all I can see for a second i is a black screen with osd, then crashes ... any others of games launching with glxosd run fine.

Parameters doesn't work

I'm using the Ubuntu 12.04 (Propritary Nvidia driver) Version from the PPA and everytime when I try to use a parameter, I get the error that command couldn't be found.

$ glxosd --config ~/.glxosd/glxosd.conf ./Verdun
/usr/bin/glxosd: Zeile 19: --config: Kommando nicht gefunden.

No matter if I use --config, -c, --steam or -s. This is the content of the /usr/bin/glxgears: https://gist.github.com/NeXxGeN/06df78b1ec071e071e88

GLXOSD may be incompatible with applications using freetype

Via #33 (comment)

GLXOSD uses freetype at runtime, which can conflict if the application is using a different version of freetype.

A couple fix ideas:

  • Linking freetype statically: that wouldn't help, right?
  • Use freetype once on startup, then shut it down when we're done and before Dota FT_Init's its freetype. I think this would avoid the conflicts, but we'd need to know all glyphs needed for the OSD in advance.
  • Outsource the font rendering code to a separate executable (either called at runtime, or called when installing GLXOSD, generating a bitmap font)
  • Don't use freetype

Missing characters and crash in Factorio

In Factorio, some characters in the GUI are missing when using GLXOSD.

Without GLXOSD:

With GLXOSD:

It seems to be random every time I start it up which characters are missing. The game also crashes when loading a save with GLXOSD. May be related to #33 / #37.

The segfault doesn't seem to give much information:

Factorio crashed. Generating symbolized stacktrace, please wait ...
#0  0x7f264ffb0680 in ?? at ??:0
#1  0x7f26500a5195 in ?? at ??:0
#2  0xb2742e in ?? at ??:0
#3  0xb94572 in ?? at ??:0
#4  0xb2bbf3 in ?? at ??:0
#5  0x521ae2 in ?? at ??:0
#6  0xa181d6 in ?? at ??:0
#7  0xa19aee in ?? at ??:0
#8  0xa1bbbf in ?? at ??:0
#9  0xa6dc9a in ?? at ??:0
#10 0x7f264ff9d610 in ?? at ??:0
#11 0x40a379 in ?? at ??:0

Using the 64-bit version of Factorio 0.12.8 and GLXOSD 2.3.3, also happens with 2.5.0.

Counter Strike Source runs like crap

When I had GLXOSD running while I played Counter Strike Source, the game ran like crap.
It had 13fps, no matter what I did, it never changed, not even when I changed it from High to Low, even the screen resolution from 1920x1080 to 1280x720.

It was working fine in CSGO and Duke Nukem 3D so I didn't know it was GLXOSD until I decided to try removing it from the command line.

Now my theory is that GLXOSD is capping the game at 13fps. Cause not once did I ever see it go above 13 (except for like 13.7 and that stuff), never 14 or above.
It went below, never above.

don't print empty libsensors values

Hello, this is how glxosd looks for me by default:
glxgears

I know I can use libsensors_chip_feature_filter to filter out all those useless empty libsensors values, but it requires manual work and it also requires the user to know regular expressions. Why not simply avoid printing libsensors items which have empty values? It can stay configurable for power users, if they have some use for it (but I don't really know what).

What I don't really understand is why some of those values are empty, because they are printed when I run sensors in terminal:

$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +105.0°C)
temp2:        +29.8°C  (crit = +105.0°C)

radeon-pci-0100
Adapter: PCI adapter
temp1:        +38.0°C  (crit = +120.0°C, hyst = +90.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +35.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:         +34.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:         +35.0°C  (high = +80.0°C, crit = +100.0°C)
Core 2:         +34.0°C  (high = +80.0°C, crit = +100.0°C)
Core 3:         +34.0°C  (high = +80.0°C, crit = +100.0°C)

it8728-isa-0a30
Adapter: ISA adapter
in0:          +0.10 V  (min =  +0.00 V, max =  +3.06 V)
in1:          +1.96 V  (min =  +0.00 V, max =  +3.06 V)
in2:          +2.00 V  (min =  +0.00 V, max =  +3.06 V)
in3:          +2.04 V  (min =  +0.00 V, max =  +3.06 V)
in4:          +0.01 V  (min =  +0.00 V, max =  +3.06 V)
in5:          +1.75 V  (min =  +0.00 V, max =  +3.06 V)
in6:          +1.49 V  (min =  +0.00 V, max =  +3.06 V)
3VSB:         +3.38 V  (min =  +0.00 V, max =  +6.12 V)
Vbat:         +3.17 V  
fan1:         719 RPM  (min =   10 RPM)
fan2:           0 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
fan5:           0 RPM  (min =    0 RPM)
temp1:        +30.0°C  (low  =  +0.0°C, high = +60.0°C)  sensor = thermistor
temp2:        +25.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp3:        +27.0°C  (low  =  +0.0°C, high = +70.0°C)  sensor = Intel PECI
intrusion0:  ALARM

I assume you only print values which have °C in them (which is a reasonable default). In that case, again, why not hide the rest?

(I would be actually interested to see fan1 in the output, so it would be nice to not only print values containing °C by default, but also values containing RPM and a non-zero number, and hide the rest).

glxosd 20160210git7f0886e

Crashes with Steam on ArchLinux (please help me track down the cause)

Suspected cause

libstdc++ version incompatibility

Things to try

Try changing -std=c++11 to -std=c++0x in CMakeLists.txt, then ./clean and follow the compilation instructions.

Missing information

Please provide the output of the following commands:

ldd [PATH_TO_BOOST_SYSTEM_SO]

Unable to tune OSD's info

Hello. I'm running Arch Linux and using glxosd from git.

It appears no matter what I comment out in the config file, I can't modify the information displayed on the OSD. I always get the "full" report, and I can't seem to filter or tune it, though I've seen other people being able to display only FPS or such things.

I'm running " r32.9f216b2-1".

Thanks !

Investigate into the possibility of using dlmopen to completely isolate GLXOSD libraries from the host process

There are currently multiple games that conflict with the libraries GLXOSD utilises. I have confirmed that the following games are currently problematic because of symbol clashes between libraries loaded by GLXOSD and libraries linked by the games:

  • Sid Meier's Civilization V (conflict with built-in Lua implementation)

As of today, I only know of one solution to the problem: using dlmopen instead of dlopen. However, there are multiple problems with that approach. Namely, it seems that trying to link certain symbols causes crashes. I am not sure if these problems were caused by the way I use dlmopen or if these are problems with dlmopen itself, as the information I've found on dlmopen is sparse and it requires a lot more attention.

If you are sure that GLXOSD doesn't work with an application or a game because of a symbol conflict, please do leave the name of the game and the conflicting library in the comments.

More efficient text rendering

GLXOSD's overlay uses a separate batch/texture for each glyph, which is inefficient. A better way to render text is to pack all glyphs you need into one texture, then use texture coordinates to select glyphs for rendering.

I tested the FPS impact of GLXOSD on a mostly empty room being rendered in OpenMW:

GLXOSD off: 700 fps
GLXOSD on: 650 fps

That's a difference of 0.1ms. I guess you could say that's almost negligible, but the situation may be different with a lower end video card. Also, GLXOSD is a benchmarking tool after all, so capturing the FPS as precisely as possible would be appreciated :)

Related to bug #37, which might also benefit from a text rendering rewrite.

Crash due to libfontconfig

Hello,

Whenever i run glxosd on Debian Sid (Updated 14 June 2013) i get the error: fcmatch.c:548: IA__FcFontMatch: Assertion `result != ((void *)0)' failed.
I googled for the issue and it seems like a problem in libfontconfig that has been a problem since May 2012.
I don't know if you can work around this issue, or that libfontconfig needs patching, but wanted to let you know.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672947 is a similar issue with mplayer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.