The412Banner
8cb5c2168e
feat(hud): GPU load and clock without root where Android blocks kgsl ( #1969 )
...
On some Adreno devices (the Retroid Pocket Duo) SELinux hides kgsl's sysfs
nodes from apps, so the HUD showed no GPU % and no GPU clock. Devices whose
nodes are readable keep using them; nothing changes there or on GPUs
without kgsl.
Where the nodes are blocked:
- GPU %: a native reader maps kgsl's memstore read-only (any kgsl client
may) and samples the ringbuffer start/end timestamps once a millisecond
while a HUD is shown. That covers all GPU work, Android's own
composition included.
- Backup for GPU %: an implicit Vulkan layer in the guest
(tools/gpuload) and the compositor time their own GPU work with
timestamp queries. It runs until the memstore stamps are seen moving,
and for the whole session if they never move.
- GPU clock: a small GPU job of our own reads the always-on and RBBM
cycle counters (libgpuclock).
The HUD diagnostics export lists which source each GPU value came from.
tools/gpuload/build.sh takes the Vulkan headers from build_local.sh's NDK
first and keeps NDK paths with spaces intact.
2026-11-01 20:22:51 +00:00
..
2026-11-01 00:26:14 -04:00
2026-10-25 19:21:40 -04:00
2026-10-13 21:27:42 -04:00
2026-11-01 20:22:51 +00:00
2026-10-14 23:37:35 -04:00
2026-10-18 09:26:01 -04:00
2026-10-21 17:14:03 -04:00
2026-10-13 21:27:42 -04:00
2026-10-13 21:27:42 -04:00
2026-10-22 10:19:23 -04:00
2026-10-27 23:48:05 -04:00
2026-10-04 12:43:57 -04:00
2026-10-29 09:05:20 -04:00
2026-10-23 08:32:52 -04:00
2026-10-30 13:58:44 -04:00
2026-10-29 15:16:17 -04:00
2026-10-18 08:37:09 -04:00
2026-10-30 21:21:22 -04:00
2026-10-29 09:05:20 -04:00
2026-10-20 09:38:14 -04:00
2026-10-13 21:27:42 -04:00
2026-10-14 01:01:49 -04:00
2026-10-30 15:20:30 -04:00
2026-10-23 14:31:13 -04:00
2026-10-12 16:26:24 -04:00
2026-10-31 08:10:57 -04:00
2026-10-30 13:58:49 -04:00
2026-10-30 18:36:08 -04:00
2026-10-23 14:31:13 -04:00
2026-11-01 00:26:14 -04:00
2026-10-25 19:21:40 -04:00
2026-10-28 15:25:48 -04:00
2026-10-09 21:35:37 +00:00
2026-10-29 12:02:40 -04:00
2026-10-25 21:09:24 -04:00
2026-10-29 09:05:20 -04:00
2026-10-19 09:54:19 -04:00
2026-10-22 13:10:16 -04:00
2026-10-25 17:49:58 -04:00
2026-10-13 21:27:42 -04:00
2026-10-28 15:25:48 -04:00
2026-10-26 11:41:18 -04:00
2026-10-13 21:27:42 -04:00
2026-10-29 07:52:18 -04:00
2026-10-29 10:01:25 -04:00
2026-10-26 13:40:36 -04:00
2026-10-08 04:06:23 +00:00
2026-10-25 10:09:22 -04:00
2026-10-16 01:48:00 -04:00
2026-10-25 16:49:35 -04:00
2026-10-13 21:27:42 -04:00
2026-10-30 02:16:25 -04:00
2026-10-12 17:13:07 -04:00
2026-10-20 17:52:40 -04:00
2026-10-22 19:11:29 +00:00
2026-10-28 10:19:29 -04:00
2026-10-10 19:12:51 -04:00
2026-10-26 13:40:36 -04:00
2026-10-26 13:40:36 -04:00
2026-10-30 21:21:22 -04:00
2026-10-26 12:47:00 -04:00
2026-10-31 23:36:24 -04:00
2026-10-27 05:08:21 -04:00
2026-10-30 13:58:49 -04:00
2026-11-01 06:22:36 +00:00
2026-10-22 10:34:24 -04:00
2026-10-18 08:37:09 -04:00
2026-10-28 16:10:17 -04:00
2026-10-23 15:06:27 -04:00
2026-10-23 15:00:11 -04:00
2026-10-29 01:53:45 +00:00
2026-11-01 20:22:51 +00:00
2026-10-13 21:27:42 -04:00
2026-10-29 15:16:17 -04:00
2026-10-19 23:06:48 -04:00
2026-10-18 08:37:09 -04:00
2026-10-13 21:27:42 -04:00
2026-10-13 21:27:42 -04:00
2026-10-30 13:58:49 -04:00
2026-10-23 14:55:33 -04:00
2026-10-30 13:58:49 -04:00
2026-10-24 23:17:57 -04:00
2026-10-23 16:20:42 -04:00
2026-10-29 09:05:20 -04:00
2026-10-15 07:01:01 -04:00
2026-10-22 19:30:35 +00:00
2026-10-14 23:37:35 -04:00
2026-10-08 00:46:34 -04:00
2026-10-23 14:34:44 -04:00
2026-10-18 08:37:09 -04:00
2026-10-25 16:49:35 -04:00
2026-10-13 21:31:26 -04:00
2026-10-15 07:20:09 -04:00
2026-10-12 17:13:07 -04:00
2026-10-15 09:51:02 -04:00
2026-10-16 01:48:00 -04:00
2026-10-30 13:29:10 -04:00
2026-10-18 08:59:54 -04:00
2026-10-17 13:17:05 -04:00
2026-11-01 00:09:11 -04:00
2026-10-30 13:29:10 -04:00
2026-10-23 23:58:39 -04:00
2026-10-20 08:52:31 -04:00
2026-10-29 09:05:20 -04:00
2026-10-23 13:30:42 -04:00
2026-10-25 16:49:35 -04:00
2026-10-29 09:05:20 -04:00
2026-10-26 23:17:35 -04:00
2026-10-21 02:02:18 -04:00
2026-10-17 14:40:39 -04:00
2026-10-22 10:40:48 -04:00
2026-10-13 21:27:42 -04:00
2026-10-29 10:12:02 -04:00
2026-10-21 00:56:05 -04:00
2026-10-19 18:44:10 -04:00
2026-10-25 12:08:12 -04:00
2026-10-22 22:29:03 +00:00
2026-10-17 23:57:52 -04:00
2026-10-29 09:05:20 -04:00
2026-10-09 21:35:37 +00:00
2026-10-29 21:22:14 -04:00
2026-10-15 15:50:26 +00:00
2026-10-24 13:18:04 -04:00
2026-10-31 13:36:43 -04:00
2026-10-23 21:20:50 -04:00
2026-10-13 21:27:42 -04:00
2026-10-24 00:47:45 -04:00
2026-10-29 09:05:20 -04:00
2026-10-23 13:05:04 -04:00
2026-10-24 21:13:58 -04:00
2026-10-17 23:57:52 -04:00
2026-10-24 01:42:20 -04:00
2026-10-11 15:53:01 -04:00
2026-10-23 16:37:04 +08:00
2026-10-29 21:14:11 -04:00
2026-10-23 12:03:41 -04:00
2026-10-16 01:48:00 -04:00
2026-10-18 08:37:09 -04:00
2026-10-19 12:31:23 -04:00
2026-10-17 13:17:05 -04:00
2026-10-18 08:37:09 -04:00
2026-10-29 19:12:22 -04:00
2026-10-29 19:12:22 -04:00
2026-10-28 16:10:17 -04:00
2026-10-09 11:08:17 -04:00
2026-10-29 09:05:20 -04:00
2026-10-21 17:14:03 -04:00
2026-10-13 21:27:42 -04:00
2026-10-23 07:18:56 -04:00
2026-10-03 00:06:09 -04:00
2026-10-23 02:12:49 -04:00
2026-10-26 22:54:57 -04:00
2026-10-26 20:36:24 -04:00
2026-10-24 09:07:04 -04:00
2026-10-20 00:31:03 -04:00
2026-10-16 01:48:00 -04:00
2026-10-16 01:48:00 -04:00
2026-10-16 01:48:00 -04:00
2026-10-16 01:48:00 -04:00
2026-10-30 13:58:49 -04:00
2026-10-18 08:59:54 -04:00
2026-10-14 01:01:49 -04:00
2026-10-29 10:01:25 -04:00
2026-10-29 20:31:18 -04:00
2026-10-18 08:37:09 -04:00
2026-10-16 17:30:21 +00:00
2026-10-29 15:16:17 -04:00
2026-10-22 19:53:12 +00:00
2026-10-23 14:31:13 -04:00
2026-10-30 10:10:23 -04:00
2026-10-22 10:01:49 -04:00