Emil Velikov
2b7db32f54
Const annotate overlay_params& across the board
...
Most of the API does not modify it, so annotate it as const.
This makes it earlier to reason what's happening.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
f8e9ecb9fe
overlay: remove unused calculate_benchmark_data() declaration
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
9639377694
overlay: annotate render_benchmark() as static
...
Function is used solely within the compilation unit.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
5a53ad010f
overlay: position_layer() takes an immutable window_size
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
1e840f286b
mangohud: initialize the window_size
...
This one seems janky - other frontends (glx/egl LD_PRELOAD, Vulkan)
init their own global window_size.
Although in reality we use the initial data solely to set the imgui
"window" position and we immediatelly overwrite it, with the follow-up
call render_imgui().
Odds are this won't fix the glitchy (re)sizes but it's a step in the
right direction.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
74e83c0bba
mangoapp: iconify/restore the window, don't destroy it
...
Currently we're destroying the window, from under the glfw's framework
feet.
Basically we do a use-after-free, as glfwWindowShouldClose() is called
and due to some miracle we don't crash out.
Since we suspend all rendering, there's no need to actually destroy the
window - just iconify/restore it. A simple show/hide was attempted but
empirically did not work.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
40a1758518
mangoapp: reuse shutdown() helper
...
Use the helper across the board, instead of open-coding it.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
fc7a426d67
mangoapp: explicitly handle 0 over the protocol
...
Receiving 0 indicates no-op/keep as-is. Add a trivial self-describing
two-liner.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
f2b991cccd
mangoapp: make internal function static
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
8482ca00fa
mangoapp: make mangoapp_paused, msgid static
...
Both variables are used within the app alone - make them static to that
unit.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
403b0f2154
mangoapp: remove unused ctrl_msgid
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
5400332d5a
mangoapp: whitespace fixes
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
5e53342f6c
mangohudctl: rework argv handling, always send valid data
...
Currently, if the user sets attribute we send dummy data to mangohud.
Avoid that by pulling the attrib handling into main and avoiding the
duplicate attribute name checking.
Kill off the no-longer relevant TODO while we're here.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
jackun
f4ea65429e
No frame time for first frame
...
We don't know when it started to render, so...
3 years ago
jackun
a13b041d1d
Fps limit: simplify converting frame time back to fps
3 years ago
jackun
d2d6787568
Cleanup some header inclusions
3 years ago
jackun
45113bb7d2
Specify `fileChanged` argument type
3 years ago
jackun
73da29d4ad
Try to init spdlog a bit earlier
3 years ago
jackun
2f5efc320a
Move FpsLimiter to overlay.cpp
3 years ago
jackun
a26e6325cc
[dbus] Use GameMode portal inside flatpak
3 years ago
jackun
bac50e42d5
Add frame count
3 years ago
FlightlessMango
3f92e10c14
mangoapp: fix broken fsr sharpness
3 years ago
FlightlessMango
e6adae8489
mangoapp: fixing some warnings
3 years ago
FlightlessMango
284ae0da2c
mangoapp: layer: remove unused functions
3 years ago
FlightlessMango
4341843117
nlohmann_json wrap
3 years ago
FlightlessMango
7df8918c42
mangoapp: layer: append libdir to json
3 years ago
jackun
11142b5b2c
Merge pull request #703 from evelikov/misc-mixes
...
Remove libdrm_amdgpu and other unnecessary code
3 years ago
FlightlessMango
d4064bf6b7
mangoapp: layer: remove unused stuff
3 years ago
FlightlessMango
b064f47d66
mangoapp: vulkan layer
3 years ago
FlightlessMango
5b1bda770a
mangoapp: remove debug stuff
3 years ago
FlightlessMango
1940a83566
mangoapp: don't assume APU for temps
3 years ago
Emil Velikov
816d9f6b98
overlay: rework misleading gpu_busy_percent check
...
Above all, we really don't need the gpu_busy_percent node, if the GPU
exposes a gpu_metrics node,
Although looking closer, the gpu_busy_percent check is meant for
something else - to distinguish between the card node (cardX) and the
card output node (cardX-output-foo).
To top it all up, the check at the very end implies that we can get a
case where gpu_metrics and gpu_busy_perfect is missing ... that's not
possible.
So instead, drop the early gpu_busy_perfect check and properly mandate
it later on.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
9c6de0271f
overlay: completely remove force_amdgpu_hwmon option
...
No longer applicable, since the libdrm path is gone and hwmon is
required - either partially or in full.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
17bfd6ed08
Skip the standalone nodes, when gpu_metrics is present
...
Currently we open the standalone busy, temp, gpu/memory clock and
power_usage nodes, even if gpu_metrics is present.
At the same time, we correctly ignore them when doing the read-only.
So just avoid opening them all together.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
5143229bd1
Fix gpu_stats logic check
...
Currently we can get the load and temp stats either from the standalone
nodes or from the gpu_metrics (binary) sysfs node.
Fix the next to handle that.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
a7e8ae9417
Remove dummy vendorID overwrite in init_gpu_stats()
...
We have already enforced that a few lines above just after parsing the
vendor node.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
2aa49caf52
Remove find_folder() API
...
Can be trivially replaced with ls()
v2: Move break where it's supposed to.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
d75b4d972b
Remove unused LS_FLAGS::LS_ALL
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
ffb9b592f5
Use a switch in ls() d_type handling
...
Makes the code much easier to read.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
ab684a2f24
List regular files with ls(.. LS_FILES)
...
Currently it can give you a regular file, block/char device, fifo or a
socket.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
68ce8f81cc
Remove libdrm_amdgpu metrics
...
There are two alternatives - hwmon entries and gpu_metrics sysfs file.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
abbe5233ee
Remove unused X11/drm auth code
...
The code was added back in 2020 and seemingly never built. Just drop it
- if needed it can be git reverted at some point.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
7ad24b4c0a
Simplify cpu/mem/os/glxinfo parsing
...
Currently we pipeline a bunch of commands alike cat | grep | sed, there
we can do all that job with a single sed invocation - use that.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
83ce3ace2d
keybinds: move ifdef spaghetti into the header
...
Drop the ifdef and simplify the .cpp file.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
FlightlessMango
8b801e8435
don't set hide_fsr_sharpness with full
3 years ago
FlightlessMango
0402fa4ab5
mangoapp: fsr_steam_sharpness
3 years ago
FlightlessMango
5c984e7b80
mangoapp: fsr_steam_sharpness
3 years ago
FlightlessMango
b1fdbc3a5b
Disable gamemode dbus for now
3 years ago
jackun
822bb66629
Fix confusing vendorID with deviceID
...
OpenGL still needs some work to select the actual render device >:(
3 years ago
jackun
8e21b52acf
Make `get_device_name` return GPU name
3 years ago
jackun
c88ef84bf5
Revert "Get device name before system info"
...
This reverts commit e7de7b5b93
.
3 years ago
jackun
8af07b4945
Move `logging()` to Logger struct
...
Stopgap to use same m_params while waiting for proper multithreading-safe overlay_params fix.
3 years ago
Emil Velikov
42de1edc22
Rework cpu freq node handling
...
Similar to the prior commit - fscanf directly into the required data
type.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
597f78cbee
Fixup device/vendor node handling
...
Currently we readout the data as string only to convert it to hex. In
the error case, we leak the fd for the given nodes.
Read the data as hex directly, error out if that fails and avoid the
leaks.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
e3de89e475
Couple of whitespace fixes
...
Automatically picked by my editor, while fixing the warnings with prior
commits.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
c5748a3154
Reorder Logger() constructor args
...
Currently the order varies across the struct and constructor. As a nice
reminder GCC will throw a lovely warning at us. Fix the ordering.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
30cfe839eb
Address signed comparisons warnings
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
8ac81477d9
Remove unused parseConfigFile() return type
...
Was briefly introduced a while ago and the only user was been dropped
since then.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
Emil Velikov
dc53cbf0f0
Remove unused-but-set variables
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
3 years ago
FlightlessMango
3f2db318c5
Some fixes for windows compiling
3 years ago
FlightlessMango
ae7c5f0f24
Fix hud benchmark
3 years ago
Alessandro Toia
9b668babdc
gamepad: add bool is_charging
3 years ago
Alessandro Toia
6db23968ee
gamepad: fix 8Bitdo counter
3 years ago
Alessandro Toia
74b328d209
gamepad: add option to disable icon and show capacity instead
3 years ago
Alessandro Toia
5c92c32491
add gamepad_battery to legacy elements
3 years ago
Alessandro Toia
7d90ef8169
GAMEPAD: add 8Bitdo support
3 years ago
Alessandro Toia
a484f32e57
GAMEPAD: remove unsed variables
3 years ago
Alessandro Toia
a8ab4e2991
GAMEPAD: remove unused param and change xone to xbox
3 years ago
Alessandro Toia
4be3ba20c2
GAMEPAD: add battery reporting for gamepad devices
...
(xone,xpadneo,ds4,ds5,switch)
3 years ago
jackun
a029dfaaf2
Don't hide gpu_metrics behind HAVE_LIBDRM_AMDGPU
3 years ago
FlightlessMango
93f389dd62
clean up frametime_data
3 years ago
FlightlessMango
3a667ab66b
Revert FPS calc
3 years ago
FlightlessMango
cf8ba8fd63
mangoapp: clean up msg_size
3 years ago
FlightlessMango
d82738b03c
mangoapp: use GAMESCOPE_FOCUSED_APP_GFX instead
3 years ago
FlightlessMango
68f40c56cc
only shrink frametime graph on mangoapp
3 years ago
jackun
e555a942fb
Use single IO stats instance
3 years ago
FlightlessMango
e12042ca3d
mangoapp: adjust for changed msg size in gamescope
3 years ago
FlightlessMango
fa133940c8
Fix min/max frametime
3 years ago
Alessandro Toia
fb97530965
cpu: Fix not reporting amd cpu power
3 years ago
FlightlessMango
e289a55c6f
mangoapp: make sure steam_focused is false when mangoapp_steam
3 years ago
FlightlessMango
316914da8d
mangoapp: fixed mangoapp not respecting no_display
3 years ago
FlightlessMango
5cdedc4671
mangoapp: gamescope debug graphs
3 years ago
jackun
4608fa5e3a
vkGetInstanceProcAddr(instance, "vkGetInstanceProcAddr") should return our vkGetInstanceProcAddr not the next in the chain.
3 years ago
FlightlessMango
7740e8430f
mangoapp: clean up unused variable
3 years ago
FlightlessMango
44a335a809
mangoapp: mangoapp_steam bool
3 years ago
FlightlessMango
6521eaa82d
mangoapp: hide hud by default
3 years ago
Alessandro Toia
056f7b0e29
Check if battery status is full
3 years ago
FlightlessMango
17867f2a6d
Battery: show remaining if > 1.f
3 years ago
FlightlessMango
b11714a326
mangoapp: hide fsr sharp when off
3 years ago
FlightlessMango
339f5c0d11
mangoapp: hide when steam is focused
3 years ago
FlightlessMango
cdcd08be44
battery remaining: don't show seconds at least by default
3 years ago
FlightlessMango
5508933c47
mangoapp: make fsr display a little prettier
3 years ago
Alessandro Toia
590f52d223
When battery is plugged in show plug icon
3 years ago
FlightlessMango
30ee0b770d
Don't use all sysfs files if metrics_path
3 years ago
FlightlessMango
c708b1a8a8
disable deviceid check for now
3 years ago
FlightlessMango
4556caf6d3
mangoapp: remove some debug
3 years ago
FlightlessMango
b598d22543
mangoapp: don't write imgui.ini
3 years ago
Alessandro Toia
b158888d54
Add remaining time text to battery
3 years ago
FlightlessMango
61fb9267a0
mangoapp: don't use fsr if msg doesn't contain fsr
3 years ago
FlightlessMango
39f6ae98ec
Battery remaining time
3 years ago
FlightlessMango
a9f811a207
mangoapp: gamescope fsr
3 years ago
FlightlessMango
8ddbcc3803
don't average log fps
3 years ago
FlightlessMango
d71dd74685
Fix amdgpu watt and make it more granular
3 years ago
flightlessmango
a76f2a9677
Merge pull request #684 from Joshua-Ashton/no_display_default_mapp
...
Enable no_overlay by default with mangoapp
3 years ago
FlightlessMango
5373140341
Don't enable battery_icon with full
3 years ago
FlightlessMango
d72099d1e7
Fixed issue with amdgpu metrics for APU
3 years ago
Joshua Ashton
beecde110b
Enable no_overlay by default with mangoapp
...
Don't want this displaying unless explicitly requested.
3 years ago
FlightlessMango
986f3cc1b3
gpu_metrics: apu: set cpu temp as highest core temp
3 years ago
FlightlessMango
6983c2ec39
Use gpu_metrics instead of libdrm when available
3 years ago
jackun
eefce24024
Log an error if `nvmlDeviceGetUtilizationRates` failed
3 years ago
Joshua Ashton
8bc979b53c
mangoapp: Fix janky window size transitions
...
GL apps that use non-normalized coordinates for stuff that will probably do stuff like this a lot in ways that make it hard to precompute the values beforehand make me very upset.
3 years ago
Joshua Ashton
b99817fd2b
mangoapp: Don't redraw if we don't have new frames
3 years ago
Joshua Ashton
da8b0cbad4
mangoapp: Fix usage of notify_one in condition variable
...
This should be outside of the lock_guard scope to avoid a deadlock.
3 years ago
FlightlessMango
8e2c7e8524
mangoapp: disable amdgpu_handles
3 years ago
Lukáš Horáček
4943129844
cpu: Add parentheses around assigment in if check
3 years ago
Lukáš Horáček
ed4c8bca80
logging: Initialize total, total_cpu, total_gpu variables
3 years ago
Lukáš Horáček
e0cee5dbe3
cpu: Remove unused _power variable
3 years ago
FlightlessMango
fb1cae9cc9
display min/max frametime for period
3 years ago
flightlessmango
e435764eff
Merge pull request #662 from nanokatze/master
...
Set VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT when creating swapchain
3 years ago
FlightlessMango
9c15d093d6
Only reset logger if param is not set
3 years ago
FlightlessMango
639c39cdbb
mangohudctl: expand help message
3 years ago
FlightlessMango
15a5edeb51
mangoapp: fixing up ctl switch statements
3 years ago
FlightlessMango
c50c815630
destroy logger with vulkan instance
3 years ago
Alessandro Toia
af716ac830
Add fps_only to legacy_elements, fixes #674
3 years ago
FlightlessMango
46730b572a
permit starting a new log even if previous is rendering
3 years ago
FlightlessMango
9c7f91eccd
clearer headers in summary
3 years ago
FlightlessMango
e9d4eeff04
mangohudctl meson option
3 years ago
FlightlessMango
97f6a00171
mangohudctl and interface
3 years ago
Joshua Ashton
f462c7ff76
Write log file in mangoapp
...
This was only writing the summary, which is rather useless.
3 years ago
FlightlessMango
3e2023a4a2
mangoapp: control socket
3 years ago
FlightlessMango
d4ca1050ec
control: add toggle-logging
3 years ago
FlightlessMango
d734fa1b66
mangoapp: set static height to include benchmark
3 years ago
Alessandro Toia
2455d7ae9e
Disable fps_color_change and core_load_change when using full config
3 years ago
flightlessmango
0f49c5796a
Merge pull request #671 from Joshua-Ashton/empty_crash
...
Fix crash when no frames were recorded
3 years ago
Joshua Ashton
437563fa77
Fix crash when no frames were recorded
...
This can happen with MangoApp + the Steam Deck UI as it doesn't commit when there is nothing going on
3 years ago
FlightlessMango
3d3916247a
mangoapp: force benchmark underneath
3 years ago
FlightlessMango
8ee7dc0d7b
mangoapp: increase window size when rendering benchmark
3 years ago
FlightlessMango
53b2a8b842
mangoapp: force log_interval 0
3 years ago
Alessandro Toia
21ecb48214
Fix fps not showing when using full config
3 years ago
FlightlessMango
6f882115f0
initialize m_log_end
3 years ago
flightlessmango
1f94e0af4d
Merge pull request #657 from ishitatsuyuki/quad
...
overlay: avoid quadratic behavior
3 years ago
FlightlessMango
5d3c0ff686
mangoapp: make sure logger is inited
3 years ago
FlightlessMango
d5c409beed
mangoapp: temporarily remove vram mhz
3 years ago
FlightlessMango
37e18279e7
mangoapp: use amdgpu metrics
3 years ago
FlightlessMango
498687c33d
mangoapp: let gamescope decide when to send updates
3 years ago
FlightlessMango
f7dffb03a1
mangoapp: bump width
3 years ago
FlightlessMango
77e4d51d87
calculate and show mins in benchmark
3 years ago
FlightlessMango
3366120364
Move calc benchmark into logger
3 years ago
FlightlessMango
7071900a79
Disable fps_only when using full param
3 years ago
FlightlessMango
496fa0babc
mangoapp: shutdown and reinit based on no_display
3 years ago
FlightlessMango
6c0965c27b
Write a log summary
3 years ago
FlightlessMango
a1b7b55a54
Use hudelements params in logging
3 years ago
FlightlessMango
92151565fc
mangoapp: disable some options
3 years ago
flightlessmango
01cdc6cdc2
Merge pull request #664 from Joshua-Ashton/gamescope-external
...
mangoapp: Use GAMESCOPE_EXTERNAL_OVERLAY
3 years ago
FlightlessMango
941d5e6977
mangoapp: close if no_display
3 years ago
FlightlessMango
b0fc3d348a
mangoapp: notifier
3 years ago
FlightlessMango
4cd2ba539f
mangoapp: cleaning up
3 years ago
jackun
4a33838bcd
Add extra parentheses to make compiler happy
3 years ago
Joshua Ashton
80042e00a3
mangoapp: Rename to "mangoapp overlay window"
3 years ago
Joshua Ashton
0be5e9a72f
mangoapp: Use GAMESCOPE_EXTERNAL_OVERLAY
...
Don't replace the STEAM_OVERLAY
3 years ago
Alessandro Toia
4f02e20205
Blacklist: add EADesktop.exe and EALauncher.exe
3 years ago
Alessandro Toia
6717ad9ecf
Remove the FPS text from fps_only param
3 years ago
Alessandro Toia
15fc641fc3
Add fps_only param to disable showing the engine name
3 years ago
FlightlessMango
9758d2a286
Try to get correct amd gpu when multiple
3 years ago
FlightlessMango
e7c59c55a2
Rewrite reading core mhz files
3 years ago
Constantine
a04230ad29
Set VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT when creating swapchain
...
Fixes #582
3 years ago
FlightlessMango
cfd802c063
Incorrect param used in calc benchmark
3 years ago
FlightlessMango
aab8730f69
exec: make sure LD_PRELOAD is unset
3 years ago
FlightlessMango
7212c79feb
Logging: push param to benchmark calc
3 years ago
Tatsuyuki Ishi
ada173e67f
overlay: avoid quadratic behavior
...
Using a vector with erase(begin()) results in a copy of the full array
every time. This is inefficient and in the case of HUD graphs, was having
quadratic complexity which can noticeably affect performance.
This patch replaces most of the operations with an O(1) alternative,
keeping the total cost under a linear bound. While on this, also refactor
the size of graph array into a constant.
3 years ago
FlightlessMango
337ecbc4cf
use scaling_cur_freq for cpu core mhz
3 years ago
FlightlessMango
ee7f3fbfd2
Mangoapp: frametime message queue
3 years ago
FlightlessMango
52ae70f650
read_line: return empty line if ifstream fails
3 years ago
FlightlessMango
ac58c30bbc
Use driverInfo for driver name/version instead
3 years ago
FlightlessMango
e7de7b5b93
Get device name before system info
3 years ago
FlightlessMango
9434033083
Don't use read_line as it causes issue with splitgate
3 years ago
FlightlessMango
f2dcf3f4b2
Rewrite of exec()
3 years ago
FlightlessMango
23ed317536
mangoapp: shm struct + gamescope engine
3 years ago
FlightlessMango
fbda58c907
Some windows fixes
3 years ago
Stephan Lachnit
4983056600
fix regression in hw_info_updater
...
Calling std::unique_lock in update() will cause a delay if
update_hw_info() takes longer than the period when update() is called.
To fix this, a try_to_lock tag is added. update() will only update if
the lock is aquired, else the update call is skipped.
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
3 years ago
FlightlessMango
45be485a13
mangohud control
3 years ago
FlightlessMango
5fee3bc5e3
Change _params to pointer
3 years ago
FlightlessMango
872c3f03a4
Show highest cpu freq instead of cumulative
3 years ago
FlightlessMango
da573e8eba
mangoapp: fix not respecting nvctrl option
3 years ago
FlightlessMango
cb3682633e
Mangoapp: include unistd for sleep
3 years ago
FlightlessMango
b001eb4714
Move _params init to overlay.cpp
3 years ago
FlightlessMango
cd215854ce
Mangoapp: meson option
3 years ago
Joshua Ashton
fb619147e4
Set overlay atom to tell gamescope to render over
3 years ago
FlightlessMango
4e3a40c6ef
mangoapp + gamescope shm
3 years ago
jackun
a91f1c7cf7
Iterate through libraries for possible locations of dlopen/dlsym functions
...
glibc 2.34 moves `dlopen` and `dlsym` from libdl.so to libc.so
3 years ago
jackun
abf146f73c
Set correct swapchain_stats etc references for hw updater
3 years ago
jackun
9b6a39dfe9
sed s/gnu_linux/linux/g
3 years ago
jackun
90e48f95ca
Use unversioned `fmt::format_error`
3 years ago
jackun
6584f23a6c
Use `ghc::filesystem` to iterate over /proc/self/map_files
3 years ago
jackun
c452609718
Fix hw update thread waiting for initial update signal
3 years ago
jackun
ced84ec526
Try to find `dlopen`/`dlsym` from libc.so too (musl libc, glibc 2.34+)
3 years ago
FlightlessMango
947f287a5e
Only create hw_info_thread once
3 years ago
jackun
729ccc83bd
Use spdlog's 'fmt' to format media player metadata
...
Usage:
media_player_format={title};{artist};{album}
Semi-colon breaks to new line, might change.
3 years ago
FlightlessMango
3ac7772a55
Add universal param
3 years ago
jackun
ac11beef9b
[dbus] Don't stop D-Bus thread or remove filter if not completely deiniting
3 years ago
jackun
31e879215a
[dbus] Also check if gamemode is enabled with D-Bus
3 years ago
jackun
7e3a56d356
[dbus] Raise TRAP if wrong primitive type but allow to continue
3 years ago
jackun
d1617818cd
Fix OpenGL gpu_name
3 years ago
jackun
a431c092eb
Separate libdrm and libdrm_amdgpu loader
3 years ago
jackun
822e325d11
Add get_basename, fix win32 build
...
std::string::substr likes to throw
3 years ago
jackun
9df9df0f4f
Fix some tangling printfs
3 years ago
jackun
94a7705554
Fix integer overflow on 32 bit, for `procmem`
3 years ago
jackun
5767426192
Nope, ERROR level has higher priority, doh
3 years ago
jackun
c79e01830d
Clean up battery.{h,cpp} header includes
3 years ago
jackun
866fd8bc24
Add per process memory usage (`procmem` etc)
3 years ago
jackun
891abdf3b9
Skip setting up vulkan render if HUD is hidden
3 years ago
jackun
b20d2492bc
Limit keybind check to about 10hz
3 years ago
jackun
355c521f12
Misc small clean ups and fixes
3 years ago
jackun
a82e27d978
Use spdlog macros so logging can be completely disabled during compile-time
3 years ago
jackun
46c2183b5d
Use engine type enum in `engine_version()`
3 years ago
jackun
7d3b6b946d
Don't reinit stuff when re-creating swapchain
...
Partial revert of e13e98e03a
3 years ago
jackun
6c604f379c
Fix parse_pciids when trying to open pci.ids from alternate location
3 years ago
jackun
944202f273
Fix #ifdef scope in `overlay_DestroyInstance`
3 years ago
jackun
d41ad84260
Poll amdgpu regs at 120ticks/s regardless of sampling period
3 years ago
jackun
2f807a4c0d
Add `spdlog` wrap and logging
3 years ago
jackun
c093f9823e
Use libdrm_amdgpu for amdgpu sensor info, if available
...
Using plain `open` as `drmOpen` needs bus id check which needs interface 1.4 ioctl which gives EPERM cause only DRM_MASTER can call it :(
https://github.com/clbr/radeontop/issues/48#issuecomment-493792404
3 years ago
jackun
88d801bd7e
Move functions not directly related to vulkan from vulkan.cpp to overlay.cpp
3 years ago
jackun
8244d7f288
Fix vulkan driver's patch version
3 years ago
Joshua Martin
3b0b6fbc42
Add position options to place the overlay halfway down the screen ( #561 )
3 years ago
jackun
b6dab97d08
[OpenGL] Some code clean-ups
3 years ago
jackun
f8bb948de2
More quotation glyphs
3 years ago
Lukáš Horáček
213953089d
Detect ToGL
3 years ago
Lukáš Horáček
f1eae93253
Use map_files instead of lsof for wined3d detection
3 years ago
jackun
750d2cddb5
Make engine type per instance
3 years ago
FlightlessMango
e39513cfa4
still check PengineName if engine OpenGL
3 years ago
FlightlessMango
3f120b1fc5
don't set engine to vulkan if already set
3 years ago
Alessandro Toia
0bc6d33a24
Fix frame spikes when using battery parameter
3 years ago
Alessandro Toia
570bef468b
Cosmetic changes to engine detection
3 years ago
FlightlessMango
5330573c8c
don't rely on std in engine detection
3 years ago
FlightlessMango
94dda243a5
Battery: header include filesystem.h
3 years ago
FlightlessMango
226330c0d7
Battery: assume unknown status is charging
3 years ago
jackun
9da427d093
Include u2019 (RIGHT SINGLE QUOTATION MARK) glyph by default
3 years ago
jackun
0ee101e0ac
Fix MPRIS ticker, microseconds to nanoseconds
3 years ago
FlightlessMango
a50bbbac22
add battery, fps_limit and resolution to legacy layout
3 years ago
jackun
37d8c75c78
Skip calculating IO stats for first sample
...
Or you get high read/write speeds averaged over process' whole lifetime.
3 years ago
flightlessmango
428ddf4e8a
Merge pull request #536 from flightlessmango/battery_test
...
Battery info and font awesome icons
3 years ago
FlightlessMango
2e5fc31711
use vulkan to determine if zink
3 years ago
FlightlessMango
92282bcec2
convert frametime from ns to us
3 years ago
Joshua Ashton
815097718e
Use nanoseconds to calculate fps
...
No need to round this earlier on.
Removes an unnecessary implicit float -> double conversion in the calculation also
3 years ago
Joshua Ashton
1f0119bc91
Use raw clocks if available
...
Avoids NTP synchronization having impact on frametime pacing.
3 years ago
medusalix
560930214a
Fix CPU power calculations
3 years ago
Alessandro Toia
5c48b4729c
Change param to battery, add param for icon, hide power when plugged in
3 years ago
jackun
a0a57038c1
Fix redefinition of 'open'
...
musl pulls in fcntl.h from somewhere
3 years ago
Alessandro Toia
105ad9c2be
Check for batteries only once
3 years ago
Alessandro Toia
500a65dd52
Only display battery stats if a battery is present
3 years ago
Alessandro Toia
a533883a39
Check if there are battieres before attempting to retrieve stats
3 years ago
Alessandro Toia
8960a54813
Change battery path list to array
3 years ago
Alessandro Toia
6833ee3593
Check if battery(s) are fully charged
3 years ago
Alessandro Toia
6c69f68f7f
Iterate over n batteries to find energy consumption
3 years ago
Alessandro Toia
e63a5bd472
Iterate over n batteries to find percent
3 years ago
Alessandro Toia
62db1495d6
Scale down icons if font is small
3 years ago
Alessandro Toia
5656001639
Add forkawesome from compressed Base85 TTF
3 years ago
Alessandro Toia
552a85aaaa
Only update battery stats if a battery is present
3 years ago
Alessandro Toia
c6074b0f4d
Check if there are batteries before checking if they are charging
3 years ago
Alessandro Toia
8980ff46bc
When plugged in change battery icon according to percent
3 years ago
Alessandro Toia
5adb4500c7
Install forkawesome font file
3 years ago
Alessandro Toia
b89b9b8109
Add ForkAwesome Icons
3 years ago
Alessandro Toia
1ab25220c6
Add param to check battery power and percent
3 years ago
FlightlessMango
a90c897feb
Check battery info
3 years ago
Alessandro Toia
d556e8e357
Improve Zink detection
3 years ago
Alessandro Toia
36ec9ef41a
Add round_corners param
3 years ago
jackun
47865573a8
Add option to prepend libdir to library's path in vulkan manifest
...
"\$LIB" technically breaks json but on the other hand vulkan loader
currently doesn't handle "\\$LIB"
Help with issue #468
4 years ago
jackun
765024227c
[OpenGL] Framerate limit in eglSwapBuffers
4 years ago
Alessandro Toia
ddfcb01c30
Add detection of Zink
4 years ago
jackun
a724e5e294
Fix engine name not showing with `engine_version` without `fps` also enabled
4 years ago
jackun
34f964eab9
Use aligned buffer size with vkMapMemory too
4 years ago
Alessandro Toia
856c333e09
Fix wine param not properly detecting proton experimental
4 years ago
Alessandro Toia
272b035ca8
Fix wine param not detecting proton experimental
4 years ago
jackun
0f6ead57d7
[OpenGL] Bind framebuffer for all GL ES versions
4 years ago
jackun
e62d6e3337
[OpenGL] Save/restore last GL_DRAW_FRAMEBUFFER if using `gl_bind_framebuffer`
4 years ago
jackun
714f3853f7
[OpenGL] Support apitrace in debug build
...
Try to load `glxtrace.so` instead of `libGL.so.1`.
Assumes `glxtrace.so` lives outside of usual library paths and is only preloaded.
4 years ago
jackun
afa50a17c4
[OpenGL] Add gl_size_query, gl_bind_framebuffer, gl_dont_flip options for workarounds
...
`gl_size_query = viewport` - specify what to use for getting display size. Options are "viewport", "scissorbox" or disabled. Defaults to using glXQueryDrawable.
`gl_bind_framebuffer = 0` - (re)bind given framebuffer before MangoHud gets drawn. Helps with Crusader Kings 3.
`gl_dont_flip = 1` - don't swap origin if using GL_UPPER_LEFT. Helps with Ryujinx.
4 years ago
jackun
54d6a8e889
Unset LD_LIBRARY_PATH if using absolute paths in LD_PRELOAD
...
$LIB in LD_LIBRARY_PATH makes `ldconfig` unhappy.
4 years ago
jackun
ea07d1e080
Remove ".exe" from wine executable's name
...
Fixes ad4e1ac35f
4 years ago
jackun
ad4e1ac35f
Try to get wine executable's name from /proc/self/comm
4 years ago
jackun
4d4444e1c5
Allow overriding config file options with MANGOHUD_CONFIG if using legacy layout
4 years ago
jackun
4f3133c5da
Fix log file using `wine-preloader` etc instead of executable's filename
4 years ago
Lukáš Horáček
8f3ecb81df
Divide IO stats by time difference since last update
...
This should prevent IO stats reaching high numbers when application stops responding resulting into MangoHud not updating.
4 years ago
jackun
30cdc912a8
Rework blending equation to preserve alpha in output buffer
...
bda12e5fdd
4 years ago
jackun
118c54072f
[OpenGL] Disable primitive restart
4 years ago
jackun
8e7564ab1a
[OpenGL] Disable stencil test
4 years ago
jackun
bdd87f5eff
Use SetTexID instead
4 years ago
jackun
76b571bc11
[OpenGL] Fix glClipControl(GL_UPPER_LEFT) rendering
4 years ago
jackun
6c737dc734
Round up buffer allocation sizes to `nonCoherentAtomSize`.
...
For some Vega APUs. Or don't use VK_WHOLE_SIZE?
4 years ago
jackun
f77a73ce8a
Fix scoped_lock clash with >= c++17
4 years ago
jackun
3e77dd6e0b
[OpenGL] Add eglSwapBuffers to hook list
4 years ago
jackun
6769ae96fa
[OpenGL] Explicitly include dlfcn.h
4 years ago
FlightlessMango
6286313478
MSVC building fixes
4 years ago
jackun
8b2255b35c
Fix crash on destroying NULL swapchain
...
Vulkan spec allows calling vkDestroySwapchainKHR with VK_NULL_HANDLE swapchain.
mesa MR#5616
4 years ago
FlightlessMango
cc83f2878e
Try to guess mesa version
4 years ago
FlightlessMango
76fb1ec3cb
Remove lsof as dependency
4 years ago
FlightlessMango
e13e98e03a
Fixed debug output of gpu name
4 years ago
FlightlessMango
f8fa73daf2
Get logged gpu name from pci_ids instead
4 years ago
FlightlessMango
66a07d77ba
Use read_line for checking cpu sched
4 years ago
FlightlessMango
3261d12ad7
Add checking cpu scheduler
4 years ago
FlightlessMango
1a8689fbba
Add gpu power to logs
4 years ago
jackun
41034b1089
[OpenGL] Return -1 instead for glXSwapBuffersMscOML if it is null
4 years ago
jackun
439ff716c2
[OpenGL] Some nullptr guards
...
Maybe helps issue #355
4 years ago
jackun
53cca5e723
Merge remote-tracking branch 'origin/master' into develop
4 years ago
FlightlessMango
48cf66630b
Detect WineD3D
4 years ago
FlightlessMango
d0c35b9587
Add detection of Damavand
4 years ago
FlightlessMango
abe45c7485
Check log stream before writing
4 years ago
jackun
ae410f01e7
Re-init cpu stats if core count changes; fix off-by one error
...
Helps with #438
4 years ago
jackun
6ad9791ceb
Deduplicate code for `find_*_input` functions
4 years ago
jackun
0fbbf00fe2
[OpenGL] Load libEGL.so.1 and use eglGetProcAddress to get EGL procs
4 years ago
flightlessmango
2fe9808f69
Merge pull request #433 from baryluk/programname
...
Improve code for program name extraction
4 years ago
Witold Baryluk
25f7201770
Disable lsof warnings explicitly
...
On most system lsof is compiled with warnings enabled.
This causes spam multiple times per one mangohud invocation (up to about 10 times even), like this:
```
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
```
Disable warnings explicitly.
4 years ago
jackun
19ef4f3df0
[dbus] re-init active player so `media_player_name` changes take effect
...
Might be good to check if player name actually changed though.
4 years ago
Witold Baryluk
c92f805c2d
Prevent infinite recursion when using Mesa zink.
...
When using zink (`MESA_LOADER_DRIVER_OVERRIDE=zink`),
running any app (OpenGL or Vulkan), will trigger running
`glxinfo`. Unsetting of `LD_PRELOAD` is not sufficient,
because if using `zink`, it will load Vulkan, and load Vulkan
implicit layer for Mangohud, using `/usr/share/vulkan/implicit_layer.d/MangoHud.json`,
which will cause it to reenter this function in another process,
causing infinite recursion (until the Vulkan driver finally errors
out with too many VkDevices / contexts created).
I have easily have seen recursion depths of 200+ until this happen,
and sometimes takes up to 2 minutes, with 2000 extra shell and `cut`
processes in the process tree.
Fix this by marking recursion entrance.
This makes glxmark start in less than 1 second, instead
about 60 seconds.
When at it us `glxinfo -B`, which is significantly faster
on zink, yet provides all information we need.
4 years ago
flightlessmango
185941a857
Fix some warnings
4 years ago
flightlessmango
fc8eeaf0dc
Lingering TableNextCell
4 years ago
flightlessmango
e57be394d7
Merge pull request #428 from flgx16/swap
...
Add swap
4 years ago
jackun
4862d83b60
Make `add_blacklist` const&
...
Might be optimized by compiler already but who knows.
4 years ago
jackun
72f1ec094c
Don't continue parsing configs if process is blacklisted
4 years ago
FlightlessMango
90ce1c5778
ImGui wrap
4 years ago
FlightlessMango
0162fb913c
Always try to update exec's
4 years ago
Alessandro Toia
2c99138374
Remove custom_text_center from legacy and trailing spaces
4 years ago
flightlessmango
bd71d0b5fd
Check for lsof before trying to use it
4 years ago
flightlessmango
1b44c57db5
Improved lsof for checking gamemode/vkbasalt
4 years ago
flightlessmango
214bb83d40
Moved update_exec() into a thread
4 years ago
flightlessmango
05cf9fc5d6
Add gamemode and vkbasalt function
4 years ago
Alessandro Toia
1d8f4b79c1
Formatting Fixes and remove unused variable
4 years ago
FlightlessMango
c54f8bec5d
Hud elements exec function
4 years ago
Alessandro Toia
c4925ac83e
Allow multiple instances of custom_text_center and custom_text
4 years ago
FlightlessMango
05c09e3fdf
Only draw custom_text_center if it's not empty
4 years ago
Witold Baryluk
4f20da781d
Improve code for program name extraction
...
This cleans up the code, as well fixes the bug of not setting
program_name if the MANGOHUD_CONFIG env is specified.
Instead of global variable, that could be not-initialized
use a function to get a program name in logging.
While at it, revamp code and separate things into own functions,
and return by value, and make them easier to use / share code.
4 years ago
Lukáš Horáček
f11a49ae8b
Add swap
4 years ago
Alessandro Toia
c16332eddf
Less tr and grep to find driver version
4 years ago
Alessandro Toia
80004d3fe0
Chnage fps color based on fps value
4 years ago
Alessandro Toia
75d9e51445
Remove custom_header, add new params custom_text_center and custom_text
4 years ago
AlexxandreFS
fa433cb798
fix: cut --output-delimiter
4 years ago
Alessandro Toia
439f1266ba
Remove custom_header background and add newline after
4 years ago
Alessandro Toia
576f9887e0
Add custom_header to legacy_elements, make sure custom_header is always shown first
4 years ago
Alessandro Toia
c479694735
Use SetCursorPosX() instead of SameLine() to center text
4 years ago
Alessandro Toia
b77517501c
Add new param custom_header
4 years ago
Witold Baryluk
6a1028b17e
Fix some MESA inherited references in overlay params
...
MANGOHUD_CONFIG as used.
MANGOHUD printf prefix.
4 years ago
FlightlessMango
d54409b6b5
Don't need vulkan hooking in kiero
4 years ago
FlightlessMango
af0658e137
Change win config location to mangohud folder
4 years ago
FlightlessMango
1a86d3b241
Set dx_version var
4 years ago
FlightlessMango
3bc0f32a3b
Init all related renderTypes
4 years ago
FlightlessMango
079f700241
Make sure logger gets inited in win
4 years ago
Alessandro Toia
a061ca060f
__gnu_linux__ shouldn't be caps
4 years ago
Alessandro Toia
8e873fe547
Remove more "not" and "and" in if statments
...
Rename dbus_helpers.hpp to dbus_helpers.h
4 years ago
FlightlessMango
6ed47879e7
__gnu_linux__ shouldn't be caps
4 years ago
FlightlessMango
f375d94188
libgen.h not needed on win32
4 years ago