From 08035010c94c9306b1fdbda62f3088358891bd43 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Mon, 29 Dec 2025 19:30:28 +0200 Subject: [PATCH] Add used and total GPU vram variables --- src/hardware.go | 16 ++++++++++++---- src/modules.go | 6 ++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/hardware.go b/src/hardware.go index dd315ed..baeecd4 100644 --- a/src/hardware.go +++ b/src/hardware.go @@ -24,7 +24,8 @@ type GPU struct { Product string Subsystem string Driver string - VRAM string + VramTotal string + VramUsed string } type Monitor struct { @@ -136,11 +137,17 @@ func GetGPUModels(hiddenGPUs []int) []GPU { } // Get VRAM - vram := "Unknown" + vramTotal := "Unknown" bytes, err := os.ReadFile("/sys/class/drm/card" + strconv.Itoa(gpu.Index) + "/device/mem_info_vram_total") if err == nil { vramUint, _ := strconv.ParseUint(strings.TrimSpace(string(bytes)), 10, 64) - vram = FormatBytes(vramUint) + vramTotal = FormatBytes(vramUint) + } + vramUsed := "Unknown" + bytes, err = os.ReadFile("/sys/class/drm/card" + strconv.Itoa(gpu.Index) + "/device/mem_info_vram_used") + if err == nil { + vramUint, _ := strconv.ParseUint(strings.TrimSpace(string(bytes)), 10, 64) + vramUsed = FormatBytes(vramUint) } ret = append(ret, GPU{ @@ -150,7 +157,8 @@ func GetGPUModels(hiddenGPUs []int) []GPU { Product: gpu.DeviceInfo.Product.Name, Subsystem: gpu.DeviceInfo.Subsystem.Name, Driver: gpu.DeviceInfo.Driver, - VRAM: vram, + VramTotal: vramTotal, + VramUsed: vramUsed, }) } diff --git a/src/modules.go b/src/modules.go index 5256822..5405cd5 100644 --- a/src/modules.go +++ b/src/modules.go @@ -246,8 +246,10 @@ func initializeModuleMap() { return gpu.Subsystem case "GPU_DRIVER": return gpu.Driver - case "GPU_VRAM": - return gpu.VRAM + case "GPU_VRAM_TOTAL": + return gpu.VramTotal + case "GPU_VRAM_USED": + return gpu.VramUsed default: return "" }