From f4ccccfb32917e15bd7dd4ac2f2145ccaa67ba7e Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Tue, 10 Feb 2026 16:16:35 +0100 Subject: [PATCH] Update api.func --- misc/api.func | 102 +++++++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 42 deletions(-) diff --git a/misc/api.func b/misc/api.func index b7b67261c..f4104f833 100644 --- a/misc/api.func +++ b/misc/api.func @@ -168,6 +168,43 @@ explain_exit_code() { # SECTION 2: TELEMETRY FUNCTIONS # ============================================================================== +# ------------------------------------------------------------------------------ +# detect_gpu() +# +# - Detects GPU vendor and passthrough type +# - Sets GPU_VENDOR and GPU_PASSTHROUGH globals +# - Used for GPU analytics +# ------------------------------------------------------------------------------ +detect_gpu() { + GPU_VENDOR="" + GPU_PASSTHROUGH="none" + + # Detect Intel GPU + if lspci 2>/dev/null | grep -qi "VGA.*Intel"; then + GPU_VENDOR="intel" + GPU_PASSTHROUGH="igpu" + fi + + # Detect AMD GPU + if lspci 2>/dev/null | grep -qi "VGA.*AMD\|VGA.*ATI"; then + GPU_VENDOR="amd" + # Check if discrete + if lspci 2>/dev/null | grep -qi "AMD.*Radeon"; then + GPU_PASSTHROUGH="dgpu" + else + GPU_PASSTHROUGH="igpu" + fi + fi + + # Detect NVIDIA GPU + if lspci 2>/dev/null | grep -qi "VGA.*NVIDIA\|3D.*NVIDIA"; then + GPU_VENDOR="nvidia" + GPU_PASSTHROUGH="dgpu" + fi + + export GPU_VENDOR GPU_PASSTHROUGH +} + # ------------------------------------------------------------------------------ # post_to_api() # @@ -215,6 +252,13 @@ post_to_api() { pve_version=$(pveversion 2>/dev/null | awk -F'[/ ]' '{print $2}') || true fi + # Detect GPU if not already set + if [[ -z "${GPU_VENDOR:-}" ]]; then + detect_gpu + fi + local gpu_vendor="${GPU_VENDOR:-}" + local gpu_passthrough="${GPU_PASSTHROUGH:-none}" + local JSON_PAYLOAD JSON_PAYLOAD=$( cat </dev/null | grep -qi "VGA.*Intel"; then - GPU_VENDOR="intel" - GPU_PASSTHROUGH="igpu" - fi - - # Detect AMD GPU - if lspci 2>/dev/null | grep -qi "VGA.*AMD\|VGA.*ATI"; then - GPU_VENDOR="amd" - # Check if discrete - if lspci 2>/dev/null | grep -qi "AMD.*Radeon"; then - GPU_PASSTHROUGH="dgpu" - else - GPU_PASSTHROUGH="igpu" - fi - fi - - # Detect NVIDIA GPU - if lspci 2>/dev/null | grep -qi "VGA.*NVIDIA\|3D.*NVIDIA"; then - GPU_VENDOR="nvidia" - GPU_PASSTHROUGH="dgpu" - fi - - export GPU_VENDOR GPU_PASSTHROUGH -} - # ------------------------------------------------------------------------------ # post_tool_to_api() #