jackun
d73932ad17
Clean up getAmdGpuInfo_actual
2 years ago
jackun
bd2f7b24b8
Snapshot some paths so moving stuff around doesn't randomly break things
2 years ago
FlightlessMango
17d4c1dd4a
amdgpu: use gtt_used for APUs
2 years ago
FlightlessMango
19fbd9bf9b
Nvidia: only do throttling checks if enabled
2 years ago
FlightlessMango
5d6ebe2f38
Logging: use same data for benchmark and summary
2 years ago
FlightlessMango
b30302c889
amdgpu: prefer hwmon over gpu_metrics for gpu temp
...
Co-authored-by: Martin Roukala <martin.roukala@mupuf.org>
2 years ago
FlightlessMango
350dca5d21
Dynamic width when fps_only
2 years ago
FlightlessMango
4f9d870c72
fan: add some checks
2 years ago
FlightlessMango
65e70c9cfb
fan param
2 years ago
jackun
1f90b0b2aa
Revert "overlay: remove HUDElements.params setter"
...
This reverts commit 14ddc9563f
.
HUDElements.params gets stale. Needs a proper fix though.
2 years ago
jackun
3ee1048acf
Check if amdgpu gpu_metrics can be read and do some sanity-checks
2 years ago
Emil Velikov
14ddc9563f
overlay: remove HUDElements.params setter
...
HUDElements.params is already set in the parse_overlay_config() call
before we even get here.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years ago
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>
2 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>
2 years ago
Emil Velikov
5a53ad010f
overlay: position_layer() takes an immutable window_size
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years ago
jackun
f4ea65429e
No frame time for first frame
...
We don't know when it started to render, so...
2 years ago
jackun
a13b041d1d
Fps limit: simplify converting frame time back to fps
2 years ago
jackun
d2d6787568
Cleanup some header inclusions
2 years ago
jackun
73da29d4ad
Try to init spdlog a bit earlier
2 years ago
jackun
2f5efc320a
Move FpsLimiter to overlay.cpp
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 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>
2 years ago
jackun
822bb66629
Fix confusing vendorID with deviceID
...
OpenGL still needs some work to select the actual render device >:(
2 years ago
jackun
8e21b52acf
Make `get_device_name` return GPU name
2 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>
2 years ago
FlightlessMango
ae7c5f0f24
Fix hud benchmark
2 years ago
jackun
a029dfaaf2
Don't hide gpu_metrics behind HAVE_LIBDRM_AMDGPU
2 years ago
FlightlessMango
93f389dd62
clean up frametime_data
2 years ago
FlightlessMango
3a667ab66b
Revert FPS calc
2 years ago
jackun
e555a942fb
Use single IO stats instance
2 years ago
FlightlessMango
fa133940c8
Fix min/max frametime
2 years ago
FlightlessMango
316914da8d
mangoapp: fixed mangoapp not respecting no_display
2 years ago
FlightlessMango
c708b1a8a8
disable deviceid check for now
2 years ago
FlightlessMango
6983c2ec39
Use gpu_metrics instead of libdrm when available
2 years ago
FlightlessMango
fb1cae9cc9
display min/max frametime for period
2 years ago
FlightlessMango
46730b572a
permit starting a new log even if previous is rendering
2 years ago
flightlessmango
0f49c5796a
Merge pull request #671 from Joshua-Ashton/empty_crash
...
Fix crash when no frames were recorded
2 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
2 years ago
FlightlessMango
3d3916247a
mangoapp: force benchmark underneath
2 years ago
flightlessmango
1f94e0af4d
Merge pull request #657 from ishitatsuyuki/quad
...
overlay: avoid quadratic behavior
2 years ago
FlightlessMango
37e18279e7
mangoapp: use amdgpu metrics
2 years ago
FlightlessMango
3366120364
Move calc benchmark into logger
2 years ago
FlightlessMango
a1b7b55a54
Use hudelements params in logging
3 years ago
jackun
4a33838bcd
Add extra parentheses to make compiler happy
3 years ago
FlightlessMango
9758d2a286
Try to get correct amd gpu when multiple
3 years ago
FlightlessMango
cfd802c063
Incorrect param used in calc benchmark
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
ee7f3fbfd2
Mangoapp: frametime message queue
3 years ago
FlightlessMango
9434033083
Don't use read_line as it causes issue with splitgate
3 years ago
FlightlessMango
23ed317536
mangoapp: shm struct + gamescope engine
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
5fee3bc5e3
Change _params to pointer
3 years ago
FlightlessMango
b001eb4714
Move _params init to overlay.cpp
3 years ago
FlightlessMango
4e3a40c6ef
mangoapp + gamescope shm
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
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
d1617818cd
Fix OpenGL gpu_name
3 years ago
jackun
866fd8bc24
Add per process memory usage (`procmem` etc)
3 years ago
jackun
a82e27d978
Use spdlog macros so logging can be completely disabled during compile-time
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
Joshua Martin
3b0b6fbc42
Add position options to place the overlay halfway down the screen ( #561 )
3 years ago
Lukáš Horáček
213953089d
Detect ToGL
3 years ago
jackun
750d2cddb5
Make engine type per instance
3 years ago
FlightlessMango
3f120b1fc5
don't set engine to vulkan if already set
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
jackun
0ee101e0ac
Fix MPRIS ticker, microseconds to nanoseconds
3 years ago
flightlessmango
428ddf4e8a
Merge pull request #536 from flightlessmango/battery_test
...
Battery info and font awesome icons
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
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
a533883a39
Check if there are battieres before attempting to retrieve stats
3 years ago
Alessandro Toia
552a85aaaa
Only update battery stats if a battery is present
3 years ago
FlightlessMango
a90c897feb
Check battery info
3 years ago
jackun
f77a73ce8a
Fix scoped_lock clash with >= c++17
3 years ago
FlightlessMango
6286313478
MSVC building fixes
3 years ago
FlightlessMango
1a8689fbba
Add gpu power to logs
3 years ago
flightlessmango
e57be394d7
Merge pull request #428 from flgx16/swap
...
Add swap
4 years ago
FlightlessMango
90ce1c5778
ImGui wrap
4 years ago
FlightlessMango
0162fb913c
Always try to update exec's
4 years ago
flightlessmango
214bb83d40
Moved update_exec() into a thread
4 years ago
FlightlessMango
c54f8bec5d
Hud elements exec function
4 years ago
Lukáš Horáček
f11a49ae8b
Add swap
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