Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DRAFT]: add support for some Tegra NVDEC/NVENC/VIC monitoring, generic GPU usage, and EMC usage #1322

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions data/MangoHud.conf
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,10 @@
gpu_stats
# gpu_temp
# gpu_junction_temp
# gpu_core_clock
gpu_core_clock
gpu_nvdec_clock
gpu_nvenc_clock
gpu_vic_clock
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't these just fit under the gpu_core_clock param?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wdym? like enable all of them if only the gpu_core_clock param is enabled? I thought the granularity would be nice since not all users will want to waste space showing all of them if they only want one.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might not be understand the structure correct.
Can all 3-4 of these be monitored at the same time?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are different hardware units. their clocks are different and independent

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I fully understand, one device will only have one of these?
In that case I don't see a point in the granularity

Copy link
Author

@theofficialgman theofficialgman May 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you do not understand. no

these are different hardware engines on the same SOC. nvdec (nvidia decode engine), nvenc (nvidia encode engine), and vic (nvidia video image compositor) are all present on the same SOC.

example during chromium hardware accelerated video decode and playback:

Screenshot_20240528_133546

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for clarifying. It seems fine to have different params for this.
As for how it's displayed, this seems a bit clunky but I also don't know a better way to do it

# gpu_mem_temp
# gpu_mem_clock
# gpu_power
Expand All @@ -94,7 +97,7 @@ gpu_stats

### Display the current CPU information
cpu_stats
# cpu_temp
cpu_temp
# cpu_power
# cpu_text=
# cpu_mhz
Expand All @@ -103,7 +106,7 @@ cpu_stats
# cpu_load_color=39F900,FDFD09,B22222

### Display the current CPU load & frequency for each core
# core_load
core_load
# core_load_change

### Display IO read and write for the app (not system)
Expand All @@ -112,7 +115,9 @@ cpu_stats

### Display system vram / ram / swap space usage
# vram
# ram
ram
ram_clock
ram_bandwidth
# swap

### Display per process memory usage
Expand Down Expand Up @@ -147,9 +152,9 @@ throttling_status
#throttling_status_graph

### Display miscellaneous information
# engine_version
engine_version
# engine_short_names
# gpu_name
gpu_name
# vulkan_driver
# wine
# exec_name
Expand Down Expand Up @@ -196,7 +201,7 @@ frame_timing
# show_fps_limit

### Display the current resolution
# resolution
resolution

### Display custom text
# custom_text=
Expand Down
17 changes: 12 additions & 5 deletions src/overlay_params.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -700,18 +700,25 @@ parse_overlay_env(struct overlay_params *params,
static void set_param_defaults(struct overlay_params *params){
params->enabled[OVERLAY_PARAM_ENABLED_fps] = true;
params->enabled[OVERLAY_PARAM_ENABLED_frame_timing] = true;
params->enabled[OVERLAY_PARAM_ENABLED_core_load] = false;
params->enabled[OVERLAY_PARAM_ENABLED_core_load] = true;
params->enabled[OVERLAY_PARAM_ENABLED_core_bars] = false;
params->enabled[OVERLAY_PARAM_ENABLED_cpu_temp] = false;
params->enabled[OVERLAY_PARAM_ENABLED_cpu_temp] = true;
params->enabled[OVERLAY_PARAM_ENABLED_cpu_power] = false;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_temp] = false;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_junction_temp] = false;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_mem_temp] = false;
params->enabled[OVERLAY_PARAM_ENABLED_cpu_stats] = true;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_stats] = true;
params->enabled[OVERLAY_PARAM_ENABLED_ram] = false;
params->enabled[OVERLAY_PARAM_ENABLED_ram_clock] = false;
params->enabled[OVERLAY_PARAM_ENABLED_ram_bandwidth] = false;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_core_clock] = true;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_nvdec_clock] = true;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_nvenc_clock] = true;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_vic_clock] = true;
params->enabled[OVERLAY_PARAM_ENABLED_engine_version] = true;
params->enabled[OVERLAY_PARAM_ENABLED_gpu_name] = true;
params->enabled[OVERLAY_PARAM_ENABLED_resolution] = true;
params->enabled[OVERLAY_PARAM_ENABLED_ram] = true;
params->enabled[OVERLAY_PARAM_ENABLED_ram_clock] = true;
params->enabled[OVERLAY_PARAM_ENABLED_ram_bandwidth] = true;
params->enabled[OVERLAY_PARAM_ENABLED_swap] = false;
params->enabled[OVERLAY_PARAM_ENABLED_vram] = false;
params->enabled[OVERLAY_PARAM_ENABLED_read_cfg] = false;
Expand Down