Commit Graph

799 Commits

Author SHA1 Message Date
FlightlessMango
4fd1c5f3e7 Fixed some basic errors 2020-08-02 08:25:04 +02:00
FlightlessMango
9445ab4acc Warning that permit_upload = 0 2020-08-02 01:19:25 +02:00
FlightlessMango
6a443f35ac Upload multiple logs 2020-08-02 01:10:21 +02:00
jackun
b07db5d3ef
[dbus] Don't clear metadata when reloading config file 2020-07-31 23:05:50 +03:00
jackun
fc62624b7b
Recalculate right alignment offset if font scale changes 2020-07-31 22:51:55 +03:00
flightlessmango
c046c250d8
Merge branch 'develop' into benchmark-percentages 2020-07-23 11:16:59 +00:00
jackun
5ce6bcb79c
Set target frametime only if fps_limit > 0 2020-07-17 01:14:09 +03:00
jackun
55430d7571
Initialized fps limiter or wait for 300 years 2020-07-17 00:41:09 +03:00
jackun
bb50e6a637
[dbus] Use "xesam:url" to force metadata update
If file has no other metadata, clear old metadata by using
"xesam:url" to detect new file being played.
2020-07-16 14:24:03 +03:00
jackun
f74b4bccd9
[dbus] always update metadata if no forced player
Otherwise it stays in "paused" state if resuming play.
2020-07-16 14:22:00 +03:00
jackun
d581a9ce2b
Merge pull request #264 from larskraemer/media_player_autodetect
Media Player autodetect
2020-07-16 14:02:32 +03:00
Stephan Lachnit
acf2d88fbc Import Dear ImGui files as subproject
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-07-09 00:55:10 +03:00
Lars Krämer
a393c05829 Fix auto-switching bug
Debug output under ifdef NDEBUG
2020-07-07 01:29:37 +02:00
Lars Krämer
6dd08c89bc Use fallback only if no player was requested;
Request no player by default
2020-07-07 01:29:37 +02:00
Lars Krämer
9a34b55498 Move interactions with main_metadata into separate functions
More tidying up of the helper classes
2020-07-07 01:29:35 +02:00
Lars Krämer
7cc76142f1 Tidy up DBus helper classes
make sure metadata is up-tp-date when switching players (WIP)
2020-07-07 01:28:04 +02:00
Lars Krämer
72b86b4371 Fix some weird behaviour with non-spotify media players
Add DBusMessage_wrap to wrap/hide some dbus_message_* calls
2020-07-07 01:28:04 +02:00
Lars Krämer
6484e09f01 Implement wrapper class for DBusMessageIter
Implement for_each-style helpers for common constructions
Reimplement most of the DBus message parsing in terms of these
2020-07-07 01:28:04 +02:00
Lars Krämer
4bf7a3f2f0 Make DBus signal handling more event-based 2020-07-07 01:28:04 +02:00
Lars Krämer
5850643db4 Change the media player functionality to allow changing active media
player
2020-07-07 01:27:46 +02:00
larskraemer
a28931ef6b
General cleanup (#272)
* Cleanup unused struct fields, use uniform include guards
2020-07-06 20:31:40 +03:00
flightlessmango
eafa62356b
Merge branch 'develop' into benchmark-percentages 2020-06-30 04:39:08 +02:00
jackun
8eba5e2ed2
[OpenGL] Use GL_R8 for font textures
Randomly getting squares with GL_ALPHA for some reason
2020-06-30 02:06:01 +03:00
Lars Krämer
0b29a7ea06 Remove conflict in render_imgui 2020-06-29 16:43:25 +02:00
Lars Krämer
329725c134 Move Log uploading; Cleanup 2020-06-29 16:33:21 +02:00
Lars Krämer
4101237fdd Move logging functionality into a class 2020-06-29 16:33:17 +02:00
jackun
5fe5ac5f3d
Build script and fixes for Steam Runtime SDK 2020-06-29 17:30:45 +03:00
jackun
c63037efb5
Use 1-channel font textures; glyph ranges support; vulkan image descriptors and "helper" functions
* To save some memory, use just 1-channel alpha-only textures
* Add some sort of wider glyph ranges support
* Chop single-ish vulkan font image uploading function into separate reusable helper functions
* Use descriptor set for ImTextureID but probably use texture array and push constants for "fast-path" if need arises
2020-06-29 17:15:50 +03:00
jackun
e0832c7e02
Re-add config file watch in case of IN_DELETE_SELF 2020-06-29 14:38:47 +03:00
jackun
068157f3d8
Fix cpu fallback temp sensor logic
Break the for loop either way so `path` still points to sensor module's hwmon folder.
2020-06-25 17:29:26 +03:00
jackun
62efa4acc4
[OpenGL] Simplify if check 2020-06-25 16:51:24 +03:00
jackun
d0999ab01b
[OpenGL] Workaround: Merge version and shader strings for Feral games
FIXME: GLAD loads Feral's version of glShaderSource,
2020-06-25 16:51:24 +03:00
jackun
2db83f4e18
[OpenGL] Check if font texture is valid and regenerate if not 2020-06-25 16:51:14 +03:00
Lars Krämer
20221217d4 Frame-timing using chrono 2020-06-24 20:14:24 +02:00
Lars Krämer
22026cbc60 Create MesaClock class, use chrono classes for time points/durations 2020-06-24 14:41:34 +02:00
Kingsley McDonald
0e1fe708c8 make use of new float parsing function
i've also moved the input validation checks to the config parser, so that
warnings aren't displayed in the terminal output every time a benchmark is
run with an invalid percentile entry.
2020-06-23 19:01:55 +01:00
Kingsley McDonald
979c4d32ca oops! i didn't save changes from the merge conflict >.< 2020-06-23 18:51:51 +01:00
Kingsley McDonald
aa77a351de implement configurable benchmark percentiles. 2020-06-23 18:46:43 +01:00
jackun
0d03b5a150
meson: use gnu_symbol_visibility argument
This uses a meson builtin to handle -fvisibility=hidden.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4740>
2020-06-21 22:55:13 +03:00
FlightlessMango
118a105aa4 Check often if logUpdate has occured 2020-06-21 13:47:22 +02:00
FlightlessMango
e957358786 Force a hw values update on log start 2020-06-21 13:44:12 +02:00
jackun
44060c2b80
Force blacklist re-check at certain points
Wine preloader that executed a non-blacklisted app may execute a blacklisted app,
or vice versa, and previous check applies to new app too.
2020-06-21 14:18:56 +03:00
FlightlessMango
fbd60a102f Forgotten debugging in logging 2020-06-20 17:35:21 +02:00
FlightlessMango
a9463ae06c Start logging after first update 2020-06-20 17:17:54 +02:00
FlightlessMango
0f171dbd9c Added labels to log csv file 2020-06-20 14:05:21 +02:00
jackun
03ec318d00
Make find_*_ptr function pointers static 2020-06-19 23:44:57 +03:00
jackun
2da02ee553
Try to limit exported symbols with --version-script 2020-06-19 23:42:30 +03:00
Alan Witkowski
61a443bd50
add .csv extension to log file and rename function that generates the log filename suffix 2020-06-19 18:57:42 +03:00
jackun
612d3b761d
Merge pull request #237 from larskraemer/float_parser
First implementation of custom float parsing
2020-06-19 18:49:57 +03:00
larskraemer
ecd84c8cc0
Logging options (#234)
* Added config options for logging

* Documentation

* Log everything

* Add RAM/VRAM usage to the log

* add loggingOn-check for memory usage

* Always init GPU stats

* Move functions from logging.h to logging.cpp, remove params from writeFile
2020-06-19 18:32:04 +03:00
FlightlessMango
99cefe96a5 Created logging.cpp 2020-06-19 16:28:55 +02:00
jackun
66ddada43c
Fix readlink overloading for fortified musl
Issue #231
2020-06-19 16:15:49 +03:00
jackun
6887abbea8
Just <limits.h> 2020-06-19 16:01:18 +03:00
jackun
edf9f95517
Use std::locale::classic with confiog file ifstream, just in case 2020-06-19 16:01:18 +03:00
FlightlessMango
916ef02eb2 Revert "Add readlink.c to meson"
This reverts commit 56933049d0.
2020-06-19 14:48:38 +02:00
FlightlessMango
b614734ab6 Revert "Trying to fix issue #231 musl"
This reverts commit 01233e5f1f.
2020-06-19 14:47:24 +02:00
FlightlessMango
56933049d0 Add readlink.c to meson 2020-06-19 14:23:43 +02:00
FlightlessMango
01233e5f1f Trying to fix issue #231 musl 2020-06-19 14:22:09 +02:00
FlightlessMango
8f22ebae44 Also check for pci.ids in /usr/share/misc/ 2020-06-19 14:05:46 +02:00
FlightlessMango
e2ec80d84e Upload log keybind setup 2020-06-19 13:59:19 +02:00
FlightlessMango
8d6ff5bd25 upload log functions 2020-06-19 13:59:07 +02:00
FlightlessMango
6a28a8f7f1 Track log files for current session 2020-06-19 13:58:53 +02:00
FlightlessMango
064c285f31 permit_upload and upload_log params 2020-06-19 13:57:44 +02:00
FlightlessMango
f14c9a7587 Moved exec function in to logging.h 2020-06-19 13:56:45 +02:00
Lars Krämer
3421ad269a Use locale::classic 2020-06-19 13:44:25 +02:00
jackun
441f1d3f3f
Use std::locale::classic() in parse_float() 2020-06-19 14:43:28 +03:00
jackun
d9a09670d8
Replace std::stoi with something that doesn't throw 2020-06-19 13:47:52 +03:00
jackun
e1fb2fbf88
Parse floats in C locale, hopefully 2020-06-19 13:47:30 +03:00
Lars Krämer
4d22927776 Use a stringstream 2020-06-19 12:07:16 +02:00
Lars Krämer
01df8149ab sign bug 2020-06-19 04:26:41 +02:00
Lars Krämer
b8571c27e2 First implementation of custom float parsing 2020-06-19 03:36:55 +02:00
FlightlessMango
8e34e752e5 Merge branch 'master' into develop 2020-06-18 18:15:45 +02:00
Kingsley McDonald
6178c5859c adjust benchHeight for 0.1% and fix percentages. 2020-06-18 15:32:59 +01:00
Kingsley McDonald
053a1d8a44 add 0.1% lows to the brief benchmark overlay 2020-06-18 13:35:46 +01:00
jackun
5ec6519832
Add media_player_order to set media player metadata order 2020-06-13 22:00:36 +03:00
Stephan Lachnit
d956f60f86 remove old system nvml build option
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-06-12 13:37:12 +03:00
FlightlessMango
b9c00fc510 Check pci.ids without gpu_stats 2020-06-12 04:21:19 +02:00
FlightlessMango
38a78fa01e Fix logging window if bg alpha is 0 2020-06-12 04:16:39 +02:00
Rémi Verschelde
f915d890f2 Fix -Wformat-security warning with GCC 10.1 2020-06-11 13:47:24 +02:00
FlightlessMango
71cbd66afb Fixing cpu temp for core 2 duo CPUs 2020-06-11 14:02:56 +02:00
FlightlessMango
d41909321a More width fixing 2020-06-11 13:59:15 +02:00
FlightlessMango
0728d49a1d Fix width with no params 2020-06-11 13:50:08 +02:00
FlightlessMango
df631a2343 Reduced width with io rw 2020-06-11 12:33:07 +02:00
FlightlessMango
e9b1b70ebc Fixed nextRow for gpu_power 2020-06-11 09:03:24 +02:00
FlightlessMango
135f3a5009 Fixing compiler warnings and removing control 2020-06-11 08:58:29 +02:00
FlightlessMango
59268a34b3 Always do nextRow() with core_clock 2020-06-11 08:54:11 +02:00
FlightlessMango
bc5d41f921 Changed IO rd/wr to rw 2020-06-11 08:03:58 +02:00
FlightlessMango
4a5e05c979 Trim gpuName from pci.ids 2020-06-11 07:58:19 +02:00
FlightlessMango
572ba69e3e More width fixing 2020-06-11 04:50:39 +02:00
FlightlessMango
816d6ca515 Fixing hud width issues 2020-06-11 04:48:26 +02:00
jackun
b68f78028d
Fix "IO RD/RW" typo
Also micro-micro-micro optimization, probably: move READ/WRITE if statement before WRITE
as you'd probably find it more useful than just WRITE.
2020-06-10 22:00:55 +03:00
FlightlessMango
6d1ed9751d Changed default keybinds 2020-06-10 08:34:37 +02:00
Valters
40017bc1e6
Change blacklist type (#204)
* Set blacklist to std::vector<std::string>

Fix some strange crashes.

Co-authored-by: jackun <jack.un@gmail.com>
2020-06-09 19:00:35 +03:00
jackun
1495b1e88f
ifdef guard nvml header 2020-06-09 14:16:02 +03:00
jackun
953c8d0e0f
Add meson option with_nvml 2020-06-09 13:44:41 +03:00
jackun
a236af66ee
Lock metadata mutexes in case they are cleared by inotify thread 2020-06-08 19:09:10 +03:00
jackun
467c53d22f
Keep track of notifier thread to make sure it exits before notify_thread struct is freed 2020-06-08 19:08:01 +03:00
jackun
31f9cce720
[COMMENTED] Make inotify monitor new per-app config file or if delete, the main config file again
Needs to be triggered by main config file change.
FIXME what if there's no config file?
2020-06-08 19:03:20 +03:00
jackun
2220cb9d74
Decouple engine_version from fps 2020-06-06 13:00:59 +03:00
jackun
16b05dfc5e
Show gpu core clock or power usage in 4th column or both on next row if both are enabled 2020-06-06 12:50:13 +03:00
jackun
91ccde4969
[blacklist] Add SocialClubHelper.exe
No much difference but at least doesn't spam log as much
2020-06-06 12:35:55 +03:00
FlightlessMango
3d503c9f29 Don't enable histogram with full param 2020-06-06 00:49:24 +02:00
jackun
b837ce930e
[whitespace] fix indentation from gpu_name to arch 2020-06-05 15:46:37 +03:00
jackun
1f81889d1b
Show bitness in library loaders 2020-06-05 15:28:30 +03:00
FlightlessMango
db151bb236 Add log_interval check to per frame log write 2020-06-05 06:14:47 +02:00
FlightlessMango
52989a727e Cleaning up for after change to log_interval 2020-06-04 05:17:00 +02:00
FlightlessMango
d8727110b0 Replaced log_period env with log_interval param 2020-06-04 00:52:11 +02:00
FlightlessMango
128fbd4b88 Per frame logging use output_file and date 2020-06-04 00:47:01 +02:00
FlightlessMango
4bdd252393 Load 32bit libs if they exist with 64bit bin 2020-06-03 22:00:48 +02:00
Valters
6cebbba732
Always print blacklist info to STREAM 2020-06-02 16:47:58 +03:00
Valters
4721281952
Add LeagueClient{,UxRender} to blacklist 2020-06-02 16:47:58 +03:00
FlightlessMango
33a5ad6571 Format gpu_text and cpu_text in textColored 2020-06-01 20:18:15 +02:00
FlightlessMango
dd1667bf3e Fixed typo 2020-06-01 03:49:34 +02:00
FlightlessMango
2d0ba9a076 Params to override cpu/gpu text 2020-06-01 02:08:35 +02:00
FlightlessMango
0e3508dcf0 Check if pci.ids was found 2020-05-30 18:02:14 +02:00
jackun
699de56fa1
[dbus] clear non-main players' metadata on dbus deinit 2020-05-28 20:55:30 +03:00
jackun
72602fab89
[dbus] remove missed exceptions; set dbus call timeout to 2 seconds 2020-05-28 20:52:32 +03:00
jackun
c04658456a
Wider glyph ranges for custom font; media player text scaling with font_scale_media_player param 2020-05-24 16:49:11 +03:00
FlightlessMango
c254347688 Use histogram in benchmark too 2020-05-24 17:28:29 +02:00
FlightlessMango
ac926bbfd5 Added histogram param 2020-05-24 17:17:17 +02:00
jackun
15ed8df404
Fix keybinds init when building without X11 2020-05-24 14:14:10 +03:00
jackun
5ad67fe446
Remove unused vars 2020-05-24 14:14:10 +03:00
FlightlessMango
078617f999 Added param for engine version 2020-05-23 23:16:08 +02:00
FlightlessMango
0e396186a6 [OpenGL] Always use QueryDrawable 2020-05-22 22:01:14 +02:00
jackun
ff48525313
Consolidated amdgpu file handles to a struct and add gpu_power param to show power usage for amdgpu/nvml 2020-05-22 15:44:34 +03:00
jackun
5c3c8a5ac9
Add nvmlDeviceGetPowerUsage import 2020-05-22 15:38:54 +03:00
jackun
9b595cef1a
[dbus] clear metadata on re-init; don't use exceptions 2020-05-22 15:00:35 +03:00
jackun
5057a47b05
Potential buffer overflow, use snprintf instead 2020-05-21 20:23:33 +03:00
jackun
159305bbc7
Use display_time instead of recalculating 2020-05-21 20:19:46 +03:00
FlightlessMango
357a819d67 Removed some debugging in logging 2020-05-20 19:34:12 +02:00
FlightlessMango
096fb626a3 Fixed logging date 2020-05-20 19:31:11 +02:00
FlightlessMango
1d375fd155 Removed crosshair 2020-05-20 18:21:14 +02:00
FlightlessMango
434aa04356 Fixed bench position even more 2020-05-19 12:57:17 +02:00
FlightlessMango
7f9bb2e6b8 Fixed mistake in bench positioning 2020-05-19 12:38:03 +02:00
FlightlessMango
54f83ee3d6 Corrected position and sizing for quick bench 2020-05-18 01:09:24 +02:00
jackun
613fa68491
Use + as keybind delimiter 2020-05-17 15:45:31 +03:00
FlightlessMango
22c25b6247 Fixo typo in quick benchmark 2020-05-17 16:33:57 +02:00
jackun
c5bb35c10d
Merge branch '159' into develop 2020-05-17 15:24:47 +03:00
FlightlessMango
92b86ad8bf Added plot graph to quick benchmark 2020-05-17 15:51:43 +02:00
Valters
1afea91dab
Add multi hotkey 2020-05-17 15:19:20 +03:00
FlightlessMango
75f9128ce5 Redesigned logging, adding quick benchmark 2020-05-16 13:35:50 +02:00
FlightlessMango
0964f517b7 Change LogData previous to uint64_t 2020-05-14 14:54:57 +02:00
jackun
d93a21589e
Find cpu temp sensor input by label or fallback to first tempN_input 2020-05-14 13:50:55 +03:00
FlightlessMango
927fee0f59 No need to add version for nvidia twice 2020-05-13 10:54:00 +02:00
FlightlessMango
2e1861ea09 Changed elapsedlog to int64_t 2020-05-13 05:58:00 +02:00
jackun
40255b62f9
Fix get_device_name, don't substr if no '[' in gpu name 2020-05-12 22:56:20 +03:00
jackun
c25082b1dd
Fix blacklist array entries count 2020-05-12 21:23:15 +03:00
jackun
2622270e5c
Init remote control params even if blacklisted 2020-05-12 20:40:16 +03:00
jackun
a8f01a75e6
Use std::array for blacklist
More annoying to add entries but maybe more streamlined
2020-05-12 20:34:30 +03:00
jackun
a27ee0dc39
Generalize initial metadata error message 2020-05-11 22:30:44 +03:00
jackun
d694a61d21
Add media_player_name and media_player_color params
Allows to set "main" media player and text color
2020-05-11 22:05:13 +03:00
jackun
6c2b00ffb7
Append driver version 2020-05-10 15:46:40 +03:00
jackun
768297b430
[editorconfig] Apply whitespace rules 2020-05-10 15:18:59 +03:00
FlightlessMango
bc0a0aa53e No need to save deviceName for later 2020-05-10 16:09:05 +02:00
jackun
2308a4228a
Fix vulkan device name 2020-05-10 14:44:04 +03:00
jackun
bb9721fe87
[OpenGL] Check if SRGB is enabled and Render ImGui in linear colorspace 2020-05-10 14:15:38 +03:00
FlightlessMango
31b01aab9f Uncommented most of prop.driverVersion code 2020-05-10 08:56:41 +02:00
FlightlessMango
1750c43716 No need to convert deviceID twice 2020-05-10 02:31:58 +02:00
FlightlessMango
848b296477 Display vulkan driver
Co-authored-by: Georg Lehmann <dadschoorse@gmail.com>
2020-05-10 02:22:44 +02:00
FlightlessMango
f3422af562 Param gpu_name 2020-05-10 02:21:39 +02:00
FlightlessMango
1ddcc531ff Get device name from pci.ids and display it 2020-05-10 01:43:08 +02:00
FlightlessMango
ed62155310 Parse pci.ids
Co-authored-by: jackun <jack.un@gmail.com>
2020-05-10 01:40:56 +02:00
FlightlessMango
a2cc14f738 Get deviceID 2020-05-10 01:36:09 +02:00
jackun
beee2b08c7
[OpenGL] Add glXSwapBuffersMscOML and disable XGetGeometry 2020-05-08 22:53:33 +03:00
jackun
9d1b548f69
Merge branch 'master' into develop 2020-05-05 12:01:13 +03:00
FlightlessMango
3f4949f593 Added top-center overlay position 2020-05-04 06:54:25 +02:00
FlightlessMango
03c9d1cd90 We don't need two vk_enum_to_str in shared_library 2020-05-02 23:24:54 +02:00
FlightlessMango
70d7ea4948 Add mangohud_version to shared_library 2020-05-02 23:18:25 +02:00
FlightlessMango
9cf6c502d2 Missing brackets for versions in render_imgui 2020-05-02 20:20:10 +02:00
FlightlessMango
e170e64f9c [Params] Version option 2020-05-02 18:39:39 +02:00
FlightlessMango
0eaba7bb6c Removed obsolete license from params 2020-05-02 17:14:14 +02:00
FlightlessMango
5ee573730a Removed obsolete license from meson.build files 2020-05-02 17:13:04 +02:00
jackun
0ab53a1c06
Move MANGOHUD_PCI_DEV to config file param 'pci_dev'
Relax format requirements as long as it loosely resembles 'domain🚌slot.func' format.
2020-05-02 17:40:05 +03:00
FlightlessMango
bff9958284 Changed pthreads to std::thread 2020-05-01 23:55:21 +02:00
Sporif
c61d25da04 Simplify 'is_blacklisted' function 2020-04-30 16:49:40 +03:00
Sporif
1e1dcd3a98 Fix vulkan driver version shown for Nvidia and Intel on Windows 2020-04-30 14:38:22 +01:00
jackun
8b13f8db7c
Blacklist Final Fantasy XIV launchers 2020-04-28 23:27:52 +03:00
jackun
29e5c4e460
Show device's name and vulkan driver version 2020-04-28 18:06:39 +03:00
jackun
8b855e3251
Fix mul/div order when normalizing io stats to sample per second as fps_sampling_period is also an integer. 2020-04-28 17:25:34 +03:00
jackun
d8264c485f
[OpenGL] Fixed version check mistakenly testing for GL 4.0+ instead of 3.2+ to enable ImGuiBackendFlags_RendererHasVtxOffset, leaving 3.2 contexts without it. (ocornut#3119, ocornut#2866, ocornut#2852) 2020-04-25 21:17:58 +03:00
jackun
22ee56def5
[OpenGL] Use 32bit font texture until someone figures out why 8-bit looks worse 2020-04-25 13:13:05 +03:00
jackun
0271aa6368
[OpenGL] Track threads with context, but might as well ignore glXMakeCurrent(NULL, NULL) calls probably 2020-04-21 20:57:13 +03:00
jackun
79e4c5223a
In C-only apps, std::cerr and friends can be uninitialized 2020-04-21 17:19:12 +03:00
jackun
934dc31e44
Add utility lib with dlsym hooking 2020-04-21 17:05:37 +03:00
jackun
ebdaa901b9
Merge pull request #131 from Sporif/blacklist_v2
Blacklist: Add OpenGL and fix `mangohud steam`
2020-04-21 16:58:46 +03:00
Danilo Spinella
b6340c832a Add include for dlopen flags, fix build on musl
RTLD_DEEPBIND is not defined on musl based systems, add a check
before using it.
2020-04-21 15:51:12 +03:00
Danilo Spinella
fb64b2ae0e Add __ELF_NATIVE_CLASS to musl systems 2020-04-21 15:50:19 +03:00
Danilo Spinella
728fc9fe56 dbus: Add missing include 2020-04-21 15:47:21 +03:00
jackun
86f8ebed30
Trying to find XNVCtrl's display by iterating through 16 displays. 2020-04-20 22:51:55 +03:00
jackun
6caa4a5173
Try load XNVCtrl as "libXNVCtrl.so.0"
Seems not all distro symlink also to libXNVCtrl.so
2020-04-18 20:34:06 +03:00
Sporif
61ef9244e9 Disable dlsym hooking by default and fix LD_PRELOAD propagation to new processes
This allows `mangohud steam` to work
2020-04-18 17:53:41 +01:00
Sporif
d1e90b5bec [OpenGL] Add blacklist functionality 2020-04-18 17:53:41 +01:00
Sporif
c4a00704cf Separate out blacklist implementation 2020-04-18 17:53:41 +01:00
Georg Lehmann
1eca184157
Vulkan Overlay: Don't try to change the image layout to present twice
The render pass already does the transition.
The pipeline barrier is still needed to transfer the queue family ownership.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3740>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3740>
2020-04-18 18:37:27 +03:00
jackun
efed107af6
[meson] check void* size once and better-ish xnvctrl checks 2020-04-15 19:45:59 +03:00
jackun
cf5eb9e9a5
ifdef-guard dbus_info.h include 2020-04-15 19:12:56 +03:00
jackun
ad0f010951
Don't print that nvmlDeviceGetHandleByPciBusId failed if it wasn't even called 2020-04-14 00:54:44 +03:00
jackun
723c6bedeb
Fix init_x11 return value and X11/XNVCtrl logic checks 2020-04-14 00:26:23 +03:00
jackun
88188ee1da
[dbus] Generalize a bit more but still give Spotify special treatment, keep track of 'org.mpris.MediaPlayer2' service providers
Keeps and draws spotify's and other player's metadata separately.
Keep track of 'org.mpris.MediaPlayer2' service providers so when
a player that was the last metadata sender quits, we can stop
showing its metadata on overlay.
2020-04-13 03:02:52 +03:00
jackun
7e5afe96bb
Add dbus_message_get_sender to dbus loader 2020-04-13 02:52:36 +03:00
jackun
bb4b78ada0
[OpenGL] Spam terminal a little less with version strings 2020-04-12 16:38:28 +03:00
jackun
f35e49defa
[OpenGL] Merge "shared" files back to imgui_hud.cpp 2020-04-12 16:25:46 +03:00
jackun
b40fb95a04
[OpenGL] Better version parsing and fix gl version checks for vertex arrays 2020-04-12 16:25:35 +03:00
FlightlessMango
d6314da8b2 Merge branch 'master' into develop 2020-04-11 22:49:50 +02:00
jackun
2383ba26fc
Tell GCC to stop exporting static library functions
Should fix crashes where games using Dear ImGui link to ours.
2020-04-11 13:05:53 +03:00
flightlessmango
0f695d76c7
Merge pull request #119 from andrealmeid/log_to_mem
Write log in a memory buffer and periodically write it in disk
2020-04-11 01:49:22 +02:00
jackun
6576a0a09c
Print NVML return code as string 2020-04-11 01:08:20 +03:00
jackun
a9311bb578
Allow to specify gpu with pci bus id by setting env var MANGOHUD_PCI_DEV=xxxx:xx:xx:x where x's are "domain🚌slot.function" 2020-04-11 00:34:33 +03:00
jackun
e5a256bfc0
Move DBus init to overlay_params so it can be enabled/disabled on the fly from a single place 2020-04-10 22:39:43 +03:00
jackun
d81dc7936a
[OpenGL] Use glXQueryDrawable if XGetGeometry fails 2020-04-10 22:39:43 +03:00
jackun
ff3c58c9c5
[OpenGL] Change glXMakeCurrent return type to int just in case and convert missed #ifdefs 2020-04-10 22:35:07 +03:00
Stephan Lachnit
f860418e7e
Allow system NVML to be used
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-04-10 11:33:58 +02:00
André Almeida
f07aea54b6 logging: check if duration is enabled before checking if it has expired
If we check if log_duration is enabled before checking if it has expired
we can save some math and comparison instructions on every log write.
2020-04-09 15:58:05 -03:00
André Almeida
0a942512e9 logging: don't sleep if time is over 2020-04-09 15:50:39 -03:00
André Almeida
0303f8de28 logging: write log to a memory buffer
Instead of writing every line of the log to the file (and, consequently,
to the disk), write to a memory buffer first and after the log finishes
flush from memory to disk. This improve the performance of the tool, since
it avoids making the program blocked by disk IO.
2020-04-09 15:50:39 -03:00
jackun
f3f04f3f78
Print dlerror() in lib loaders 2020-04-09 21:26:00 +03:00
jackun
780ea7c89b
[OpenGL] Use GLAD instead on gl3w and hook EGL 2020-04-09 21:24:37 +03:00
jackun
772ab6aa5b
[OpenGL] Don't exit if function is not found, it probably isn't catastrophic 2020-04-09 11:30:51 +03:00
André Almeida
4830268a11 logging: fix indentation 2020-04-08 15:14:13 -03:00
jackun
a6bfa712e3
Do a sanity check for XNVCtrl and GLX headers 2020-04-05 16:11:29 +03:00
FlightlessMango
d454ff43a2 Hide all hud elements on no_display 2020-04-05 13:20:15 +02:00
jackun
e95a96d9f0
If used for other things than just reading sysfs files, xfs/jfs need stat() for inode type 2020-04-05 14:02:15 +03:00
jackun
0db804aa01
Don't free DBusError if it was never inited because dbus_error_free() is nullptr too 2020-04-05 13:56:14 +03:00
jackun
421146b822
Don't reinit dbus manager 2020-04-05 13:48:16 +03:00
jackun
0a27e0a447
Clear all metadata strings in case other mpris-compatible media players don't have them all 2020-04-05 00:12:01 +03:00
jackun
8024736253
Add DBus loader, combined ticker for Spotify metadata 2020-04-04 23:50:57 +03:00
FlightlessMango
d975278396
Dbus with spotify 2020-04-04 20:51:53 +03:00
jackun
cbb46fa21b
Also call default constructor for libnvctrl_loader 2020-04-04 20:46:54 +03:00
Stephan Lachnit
0998d33d72
Use Vulkan-Headers module via wrap
This commit replaces the git submodule for the Vulkan headers with meson subproject using wrap.

Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-04-04 17:49:02 +03:00
jackun
8cd3172335
[OpenGL] Separate GLX out from shareable code so wayland sessions can just use EGL, hopefully 2020-04-02 03:09:49 +03:00
jackun
2f034c6d1e
Use X11 loader functions instead of linking to X11 libs 2020-04-02 03:09:49 +03:00
jackun
71b37906da
Shared X11 intialization functions 2020-04-02 03:08:53 +03:00
jackun
329b5d66c2
Add X11 loader 2020-04-01 22:54:48 +03:00
jackun
108bca7d4f
Don't include X11 headers in overlay_params.h 2020-04-01 15:37:42 +03:00
jackun
bd9d9650a0
Move dlsym hook out from inject_glx.cpp 2020-04-01 15:37:19 +03:00
jackun
0a36578adf
[OpenGL] Rename GLX loader functions 2020-04-01 15:37:08 +03:00
jackun
b2e6727b25
[OpenGL] Rename loader_gl.* to loader_glx.* 2020-04-01 15:16:44 +03:00
jackun
2e7d92e068
Move real_dlsym files out from gl subdir 2020-04-01 14:39:51 +03:00
jackun
e750173b51
[OpenGL] Check if X11 is enabled 2020-04-01 11:46:08 +03:00
Danilo Spinella
0373383581
Add x11/wayland feature switches, rename 'use_xnvctrl' to 'with_xnvctrl' 2020-04-01 11:39:57 +03:00
jackun
59113b3ae2
[OpenGL] Move ImGui functions to separate file 2020-04-01 11:28:16 +03:00
jackun
c3e50db2f4
[OpenGL] Import glXQueryDrawable just in case 2020-04-01 11:27:27 +03:00
jackun
accac3a015
[OpenGL] Import XGetGeometry 2020-04-01 11:27:27 +03:00
jackun
ebe23d3431
[OpenGL] Rename inject.cpp to inject_glx.cpp in preparation for separating X11 related functions 2020-04-01 11:27:04 +03:00
jackun
042267f26b
Update API version to 1.2.135 in manifest 2020-03-31 00:13:53 +03:00
jackun
049e960589
Add 'use_xnvctrl' feature to allow building without libXNVCtrl support 2020-03-30 22:48:56 +03:00
jackun
5afbe10005
[OpenGL] Restore ImGui's context to previously saved one, duh 2020-03-29 01:54:57 +02:00
jackun
6eb2c9bc09
[OpenGL] Explicitly set ImGui's context and treat global context as foreign
Apps might be using Dear ImGui so keep our stuff separate from theirs.

Issue #107
2020-03-29 01:47:24 +02:00
jackun
f5e3f3b73b
[config] Add MANGOHUD_CONFIGFILE envvar for specific configuration file
Issue #104
2020-03-29 00:05:52 +02:00
jackun
f8cc3bbf06
[config] Allow fps_limit=0 or commenting it out to disable fps limit 2020-03-28 23:38:33 +02:00
jackun
49742e1cea
[config] Load config changes to local copy of overlay_params so it does not block rendering thread while parsing 2020-03-28 23:32:58 +02:00
FlightlessMango
0d53d7d39d Fixed typo in nvctrl 2020-03-28 14:39:41 +01:00
FlightlessMango
85291d25ef Added warning messages for nvctrl 2020-03-28 14:28:12 +01:00
Lionel Landwerlin
1fc94600e9
vulkan/overlay: Add a workaround semaphore for application presenting without one
When an application calls vkQueuePresent() on a different queue than
the one we run our drawing on and it doesn't give a semaphore to wait
on, let's insert our own semaphore so that we don't race the
application's drawing.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2540
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3893>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3893>
2020-03-27 02:24:54 +02:00
jackun
32ae051434
Add Bethesda launcher to blacklist 2020-03-25 22:51:21 +02:00
Sporif
c24d9015cd
Blacklist support
Initial blacklist: Battle.net.exe, EpicGamesLauncher.exe, IGOProxy.exe, IGOProxy64.exe, Origin.exe, Steam.exe

Signed-off-by: jackun <jack.un@gmail.com>
2020-03-25 17:11:33 +02:00
jackun
25b0adfbf9
Move Wine exe name code from config.cpp to get_wine_exe_name(...) 2020-03-25 17:11:29 +02:00
jackun
cf17f70dab
Remove unused statistics related code 2020-03-24 21:38:08 +02:00
jackun
d3f895cbef
[config] keep pthread_t pointers in notify_thread struct for MT safety 2020-03-24 00:51:30 +02:00
jackun
1b192c4910
[config] join notifier thread just to be sure 2020-03-24 00:10:03 +02:00
jackun
e72a7bdd76
[config] Try to set notifier file descriptor to non-blocking mode; add start/stop_notifier functions
If setting to non-blocking fails, just closing the fd should kill it anyway
2020-03-24 00:02:42 +02:00
jackun
841d76c6af
Quit config watcher thread if it fails to init and clean up 2020-03-23 23:22:22 +02:00
jackun
2ab386d70a
Fix double definition 2020-03-23 21:19:03 +02:00
FlightlessMango
a84f5ef178 Show mangohud arch in hud 2020-03-23 20:12:11 +01:00
FlightlessMango
23adda92b7 Added param 'arch' 2020-03-23 20:11:53 +01:00
FlightlessMango
c9558eec50 Merge branch 'xnvctrl' into develop 2020-03-23 18:05:13 +01:00
jackun
ae3a155e22
Keep engine name per vulkan instance 2020-03-23 18:59:39 +02:00
jackun
053a07d83c
[OpenGL] Don't set display size to scissor box if its size is just 1 by 1 2020-03-23 01:26:40 +02:00
jackun
f92a2a07db
GiB not GB 2020-03-21 21:47:50 +02:00
jackun
fbae1dfcc0
More checks for XNVCtrl support. Favor NVML but fallback to XNVCtrl if supported. 2020-03-20 16:36:00 +02:00
jackun
b059fa26bc
xnvctrl: parse tokenized attributes 2020-03-20 15:26:37 +02:00
jackun
c16f4b4275
try_stoi: spam in debug build only 2020-03-20 15:25:45 +02:00
FlightlessMango
79add746b5 Removed debugging messages 2020-03-20 13:23:39 +01:00
FlightlessMango
f2b770abac Use XNVCTRLQueryTargetAttribute64 instead 2020-03-20 13:23:24 +01:00
FlightlessMango
2c979e52e6 Set nvmlSuccess to false if NVML gpu load is unsupported 2020-03-20 13:06:24 +01:00
FlightlessMango
e7b5a18d87 If NVML fails fallback to NVctrl 2020-03-20 12:54:54 +01:00
FlightlessMango
f81af99ee5 NVCtrl meson build 2020-03-20 12:54:20 +01:00
FlightlessMango
aaaf30b807 NVctrl fetching 2020-03-20 12:54:08 +01:00
FlightlessMango
8ee0ec2c3f NVCtrl loader 2020-03-20 12:53:43 +01:00
jackun
1915352c86
Draw versions after table so they don't get clipped 2020-03-18 18:55:51 +02:00
jackun
c7bee1a99d
[OpenGL] Compare if viewport or scissor box size changed with window resizing and use that for display size 2020-03-17 15:06:58 +02:00
jackun
6ad6bffade
Use ImGui's DisplaySize so display size for layer positioning etc can be set the same way for vulkan and OpenGL 2020-03-17 15:00:20 +02:00
jackun
3d46ccafe1
Show OpenGL version below engine name too to avoid it getting clipped 2020-03-17 14:58:27 +02:00
jackun
8aa0783b4a
Show vulkan/opengl version
OpenGL glGetIntegerv(GL_[MAJOR|MINOR]_VERSION) don't work on versions < 3.0 though
2020-03-17 00:24:04 +02:00
jackun
bb3aba9080
[OpenGL] Use elfhacks to load real OpenGL functions 2020-03-16 22:37:42 +02:00
jackun
85801bcc17
[OpenGL] Add elfhacks
https://github.com/ienorand/elfhacks
2020-03-16 22:37:42 +02:00
FlightlessMango
8fb13e23e4 Resize window when reloading config 2020-03-16 18:41:48 +01:00
jackun
5bdfcd493d
[config] Add config file change notifier to OpenGL 2020-03-16 19:35:46 +02:00
jackun
a0f5cb56a2
[config] Guard overlay_params from the thread with mutex 2020-03-16 18:52:03 +02:00
jackun
34184abf2e
[config] loop in the notifier thread and reload configuration file if it is changed 2020-03-16 18:35:01 +02:00
jackun
341aa21b87
[config] Move options map and config_file_path to overlay_params 2020-03-16 18:32:48 +02:00
FlightlessMango
c5dad16612 Listen for modify on config file 2020-03-16 16:48:12 +01:00
jackun
b0f36fad31
Expand paths only 2020-03-15 18:52:14 +02:00
FlightlessMango
b0e1fe9321 [params] set targetFrameTime in params.cpp 2020-03-15 17:09:03 +01:00
FlightlessMango
71b602751d [meson] option to include_doc 2020-03-15 16:01:08 +01:00
jackun
6e40f9bdd5
Expand tilde to home dir if string param start with ~ 2020-03-15 16:57:49 +02:00
jackun
f7a7256374
Clear options map so reloading config files actually has an effect 2020-03-15 14:37:42 +02:00
jackun
6b4103eae9
[config] Parse Wine application name without absolute path 2020-03-15 13:09:51 +02:00
jackun
abef561573
Disable CPU stat(s) if it failed to initialize 2020-03-14 23:15:03 +02:00
jackun
712590befe
Check if CPU sensor file handle is valid 2020-03-14 23:14:48 +02:00
FlightlessMango
64a42df047 forgot to include functional 2020-03-14 19:27:25 +01:00
FlightlessMango
cbb58ab79c make sure Xdisplay is closed on shutdown 2020-03-14 19:18:41 +01:00
FlightlessMango
b3286cbe48 check if opengl/vulkan with is_vulkan bool 2020-03-14 18:29:43 +01:00
jackun
13e57578c3
Fix update_hud_info indentation 2020-03-14 19:11:34 +02:00
jackun
154380e056
Don't update time if not enabled 2020-03-14 19:10:38 +02:00
jackun
9a7a4d99e0
Don't update CPU freq/temp if not enabled 2020-03-14 18:48:04 +02:00
jackun
6bbc89a9cc
Don't update CPU stats if not enabled 2020-03-14 18:41:50 +02:00
jackun
16552b25e3 Don't update RAM/IO stats if not enabled 2020-03-14 18:38:18 +02:00
jackun
c850507314
[OpenGL] Initialize MangoHud from glXSwapBuffers even if glXMakeCurrent is skipped for some reason 2020-03-14 18:32:27 +02:00
jackun
fa41e6f882
Always configure vulkan json 2020-03-14 13:22:17 +02:00
jackun
ad64bf345d
Update build scripts, again
Install to $prefix$libdir/mangohud by default.
2020-03-14 12:59:43 +02:00
jackun
50cef9621b
Remove ~/.local/share/MangoHud/MangoHud.conf support 2020-03-13 18:37:55 +02:00
jackun
57f3b3470d
Remove param_unit() 2020-03-13 18:25:22 +02:00
jackun
2e3f8077cb
Remove parse_output_file 2020-03-13 18:24:21 +02:00
jackun
da9120f971
Add parse_signed() for gl_sync 2020-03-13 18:05:03 +02:00
jackun
125dbc1403
[OpenGL] Allow swap interval of -1 for adaptive sync, if supported 2020-03-13 17:54:36 +02:00
FlightlessMango
e24f5dfc8b added log_duration param and updated readme 2020-03-13 16:27:45 +01:00
FlightlessMango
b4cd837328 [OpenGL] custom font file 2020-03-13 16:18:59 +01:00
FlightlessMango
8641392ca7 added MANGOHUD_FONT to params as font_file 2020-03-13 16:18:47 +01:00
FlightlessMango
d1bdf71580 added MANGOHUD_OUTPUT to params as output_file 2020-03-13 16:06:57 +01:00
jackun
4adb6ed25f
Convert tabs to spaces in cpu.cpp/cpu.h 2020-03-13 16:35:11 +02:00
jackun
72d7f6ef71
Print also a reason for skipping a config file 2020-03-13 16:14:58 +02:00
jackun
31a651133c
[OpenGL] Cleanup stderr output a little 2020-03-13 16:08:36 +02:00
jackun
bbfad2e073
[OpenGL] Parse and initialize configuration just once 2020-03-13 16:08:36 +02:00
jackun
a52dce875f
[OpenGL] Keep glClipControl local to imgui_impl_opengl3.cpp 2020-03-13 16:08:36 +02:00
jackun
05d61ee77e
Init CPUStats just once 2020-03-13 16:08:36 +02:00
FlightlessMango
e68dd48f3f forgot one refresh_config 2020-03-13 15:07:44 +01:00
FlightlessMango
fe69ec2955 changed refresh_config to reload_cfg 2020-03-13 14:57:11 +01:00
FlightlessMango
501d7d74d2 install example config with meson 2020-03-13 12:41:22 +01:00
jackun
5caeb10882
[OpenGL] Apply swap interval from glXMakeCurrent 2020-03-13 10:05:41 +02:00
jackun
297b44bfe6
[OpenGL] Force-load libGL.so.1 with dlopen() if dlsym fails to find functions 2020-03-13 09:35:14 +02:00
jackun
e0ce0493f7
[OpenGL] Set swap interval (vsync) with gl_vsync param 2020-03-12 12:12:21 +02:00
FlightlessMango
8133048e9c Add blank configuration for project_name and layer_suffix with build.sh 2020-03-12 09:20:22 +01:00
FlightlessMango
8153e29eb3 forgot to add '/' to end of path 2020-03-12 08:31:33 +01:00
FlightlessMango
8599484032 configure .json files with meson 2020-03-12 08:24:37 +01:00
jackun
37e34335ae
Sprinkle NDEBUG over gl debug prints 2020-03-11 18:57:21 +02:00
jackun
ad598f7ec4
[OpenGL] Fix double-free with ImGui context 2020-03-11 18:56:31 +02:00
jackun
f99129f9de
Libdirs: once more, with feeling 2020-03-11 18:11:35 +02:00
jackun
4761078133
Fix small font for gl 2020-03-11 12:23:39 +02:00
jackun
c88b930a37
Match gl PushPopStyle count with vulkan's 2020-03-11 12:16:53 +02:00
jackun
bc7db582bd
Single ImGui context for OpenGL
Seems only VAO is not shareable between OpenGL context
but that gets recreated every render anyway.
2020-03-11 12:15:44 +02:00
jackun
373bba5fcf
Keep time outside the table or it gets clipped if using too fancy a format 2020-03-11 12:11:16 +02:00
FlightlessMango
8bf8723ad5 added param text_color 2020-03-11 06:20:18 +01:00
FlightlessMango
77b3033cc7 Removed frametime_alpha and replace it with an overall alpha for text and frametime 2020-03-11 06:07:41 +01:00
FlightlessMango
a1eafc3403 Install .so into subdirectory in libdir 2020-03-11 05:19:48 +01:00
jackun
a64b6cada2
Build/install scripts: verbose tar output and set files' owner/group to root 2020-03-10 23:41:55 +02:00
FlightlessMango
8558d038d7 refactored the install process 2020-03-10 13:39:52 +01:00
FlightlessMango
ccf870e630 changed offset_x/y to int so it can be negative 2020-03-10 10:18:59 +01:00
FlightlessMango
88ad5de2ab Fix so preloading doesn't break vulkan layer 2020-03-10 08:27:27 +01:00
FlightlessMango
163c76bea7 added param background_color 2020-03-10 07:48:04 +01:00