#!/usr/bin/env bash # In-game FPS benchmark for MobileGL on a real device, driven through FCL. # # Prerequisites (one-time, manual): # - FCL fordebug flavor installed (com.tungsten.fcl.mgdebug.debug); its splash # screen auto-launches the selected profile/version into the prepared world. # - FCL in-game menu "show FPS" toggle enabled (menu_setting.json showFps=true): # the FPS overlay thread logs one "FCLFPS: " logcat line per second. # - The benchmark world saved with a deterministic state (mob spawning / # daylight cycle / weather gamerules off) and the desired options.txt # (renderDistance, vsync off, maxFps high). # - Rooted device (frequency pinning + GPU utilization sampling). # # Usage: # bench.sh --device devices/odinlite.env --backend magma [--samples 30] # [--warmup 180] [--label mylabel] [--no-pin] # backend: magma | espryt | mobileglues (reference) # # Output: one JSON line on stdout (also appended to results/results.jsonl) with # mean/median/min/max FPS, GPU busy%, temperatures, and pin-integrity flags. # Screenshots (pre/post measurement) land in results/-