diff --git a/encoder/index.php b/encoder/index.php
index 129037c..9d34ff3 100755
--- a/encoder/index.php
+++ b/encoder/index.php
@@ -19,11 +19,6 @@ include 'header.php'; ?>
-
-
Network (KB/s)
@@ -33,6 +28,11 @@ include 'header.php'; ?>
Disk I/O (KB/s) & Disk %
+
+
diff --git a/install.sh b/install.sh
index b9d1eed..e5edc53 100755
--- a/install.sh
+++ b/install.sh
@@ -273,25 +273,19 @@ _prev_disk=psutil.disk_io_counters()
_prev_time=time.time()
def igpu_percent():
- # fastest method (modern kernels)
- for card in ("card0","card1","card2"):
- p=f"/sys/class/drm/{card}/gt_busy_percent"
- if os.path.exists(p):
- try:
- return float(open(p).read().strip())
- except:
- pass
-
- # fallback: intel_gpu_top JSON snapshot
try:
- out=subprocess.check_output(
- ["intel_gpu_top","-J","-s","100","-o","-"],
+ out = subprocess.check_output(
+ ["intel_gpu_top","-J","-s","200","-o","-"],
stderr=subprocess.DEVNULL,
- timeout=1
+ timeout=2
)
- j=json.loads(out.splitlines()[0])
- return float(j["engines"]["Render/3D/0"]["busy"])
- except:
+ line = out.decode().splitlines()[0]
+ data = json.loads(line)
+ engines = data.get("engines",{})
+ if not engines:
+ return 0.0
+ return round(max(v.get("busy",0) for v in engines.values()),2)
+ except Exception:
return 0.0
def sample_once():
diff --git a/setup.sh b/setup.sh
index b88e0ba..716a109 100644
--- a/setup.sh
+++ b/setup.sh
@@ -202,25 +202,19 @@ _prev_disk=psutil.disk_io_counters()
_prev_time=time.time()
def igpu_percent():
- # fastest method (modern kernels)
- for card in ("card0","card1","card2"):
- p=f"/sys/class/drm/{card}/gt_busy_percent"
- if os.path.exists(p):
- try:
- return float(open(p).read().strip())
- except:
- pass
-
- # fallback: intel_gpu_top JSON snapshot
try:
- out=subprocess.check_output(
- ["intel_gpu_top","-J","-s","100","-o","-"],
+ out = subprocess.check_output(
+ ["intel_gpu_top","-J","-s","200","-o","-"],
stderr=subprocess.DEVNULL,
- timeout=1
+ timeout=2
)
- j=json.loads(out.splitlines()[0])
- return float(j["engines"]["Render/3D/0"]["busy"])
- except:
+ line = out.decode().splitlines()[0]
+ data = json.loads(line)
+ engines = data.get("engines",{})
+ if not engines:
+ return 0.0
+ return round(max(v.get("busy",0) for v in engines.values()),2)
+ except Exception:
return 0.0
def sample_once():