[Feat] (DeviceBench): scripted in-game FPS benchmark harness (FCLFPS logcat sampling, MTK ppm frequency pinning, thermal gate, GPU busy telemetry)

This commit is contained in:
2026-08-26 01:51:04 -04:00
parent 12df061e0b
commit 386bd7e461
5 changed files with 364 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
# Device profile: AYN Odin Lite (MT6877 Dimensity 900, Mali-G68 MC4, Android 11)
# 2x A78 (policy6, max 2400000) + 6x A55 (policy0, max 2000000), GPU top OPP 902MHz.
# Panel: 1080x1920 @ 60Hz (presented FPS caps at 60 - render-side FPS comes from the
# FCLFPS logcat tag, which counts eglSwapBuffers; it is NOT vsync-capped when the
# game runs with vsync off).
DEVICE_SERIAL=MTK0002207301023500
# Frequency pins, enforced via /proc/ppm/policy/hard_userlimit_* (plain cpufreq
# sysfs writes are reverted by the vendor game boost within seconds). The stock
# performance_mode=2 boost pins big=2400000/little=2000000 anyway, so we pin at
# the same values; bench.sh records live freqs at window end to catch thermal
# clamping. Fan must be in sport mode (settings put global fan_mode 3) or the
# SoC runs away past 80C.
CPU_BIG_POLICY=policy6
CPU_BIG_FREQ=2400000
CPU_LITTLE_POLICY=policy0
CPU_LITTLE_FREQ=2000000
# GPU pin via legacy MTK gpufreq: echo <khz> > /proc/gpufreq/gpufreq_opp_freq
# (0 restores DVFS). Top OPP on this device is 902000.
GPU_PIN_KHZ=902000
# Thermal gate: wait until this zone is at or below the threshold before starting.
THERMAL_ZONE_TYPE=mtktscpu
THERMAL_START_MAX_MC=50000
# MTK ged GPU utilization node; first field of the triple is busy %.
GPU_UTIL_NODE=/sys/kernel/ged/hal/gpu_utilization
GPU_CURFREQ_NODE=/sys/kernel/ged/hal/current_freqency