dracula / tmux

🧛🏻‍♂️ Dark theme for tmux
https://draculatheme.com/tmux
MIT License
665 stars 313 forks source link

Bug: Doesn't detect AMD GPUs #218

Open shawarden opened 1 year ago

shawarden commented 1 year ago

Describe the bug

The status plugin for GPU usage doesn't process AMD and intel GPUs

To Reproduce

Steps to reproduce the behavior:

  1. Have something other than an Nvidia GPU
  2. Add gpu-usage to @dracula-plugins
  3. See 'unknown' in the GPU block

Expected behavior

It should report any GPU usage.

System

Possible fix:

Change gpu_usage.sh line 32 from...

    usage='unknown'

...to something along the lines of...

    usage=$(cat /sys/class/drm/card?/device/gpu_busy_percent | sed -z -e 's/\n/%\//g' -e 's/\/$//g')

...which can handle one or more GPUs of any type?

Same fixes can be used for gpu_ram_info.sh:

    usage=$(cat /sys/class/drm/card?/device/mem_info_vram_used /sys/class/drm/card?/device/mem_info_vram_total | cat /sys/class/drm/card?/device/mem_info_vram_used /sys/class/drm/card?/device/mem_info_vram_total | numfmt --to=iec-i --suffix=B | sed -z -e 's#\n#/#g' -e 's#/$##g'

...and gpu_power.sh:

    usage=$(echo "$(($(cat /sys/class/drm/card0/device/hwmon/hwmon2/power1_average) / 1000 / 1000))W/$(($(cat /sys/class/drm/card0/device/hwmon/hwmon2/power1_cap_max) / 1000 / 1000))W")
ethancedwards8 commented 1 year ago

Looks good. I could never find an API that shows GPU usage, but I guess I wasn't looking hard enough. If you want to implement this, that would be great.

pspiagicw commented 12 months ago

Hey @ethancedwards8, is this being worked on ?

ethancedwards8 commented 12 months ago

Sadly no. We (maintainers) don't have AMD hardware and can't really test or develop this feature. If you could implement the feature, providing you have the hardware, that would be amazing.

shawarden commented 12 months ago

I'm not a contributor, nor do I know how to as I've only ever managed my own git repos, but you can just replace line 32 of scripts/gpu_usage.sh with...

usage="$(cat /sys/class/drm/card?/device/gpu_busy_percent | sed -z -e 's/\n/%\//g' -e 's/\/$//g')"

...and it will report the gpu usage for any one or more amd or intel gpu(s)

Theoreticallyhugo commented 1 month ago

this works as tested on my mates laptop with an on cpu amd gpu usage="$(cat /sys/class/drm/card?/device/gpu_busy_percent | sed -z -e 's/\n/%\//g' -e 's/\/$//g')" usage=$(cat /sys/class/drm/card?/device/mem_info_vram_used /sys/class/drm/card?/device/mem_info_vram_total | cat /sys/class/drm/card?/device/mem_info_vram_used /sys/class/drm/card?/device/mem_info_vram_total | numfmt --to=iec-i --suffix=B | sed -z -e 's#\n#/#g' -e 's#/$##g'