Re-measure the GPU numbers with an emu list that can be trusted
The table in the README compared our own app on software against the stock
Settings app on the GPU, and labelled both as Settings. The memory saving
beside it -- 1.1 GB -- came from `emu list` before 0984336 fixed its prefix
match, so it was one emulator's resident size reported against another's.
Both numbers were written down as recorded guidance, which is the worst
place for a figure nobody can reproduce.
Taken again on one AVD, same gesture, same app on both sides. Settings
scrolling its own list: 57.4% janky frames and 18 slow UI-thread frames on
software, 2.3% and 0 on the GPU; legacy jank 100% against 5.7%. Memory
twenty seconds after boot: 3537 MB against 2918 MB, so about 620 MB rather
than 1.1 GB.
The conclusion is stronger than the version that was wrong -- the stock
Settings app missed every frame's deadline on the rasteriser -- and the
correction is noted in place rather than quietly swapped, since the old
figure has been quoted between sessions today.
Also records which jank column to read, from the peer session's measurement
of a change whose modern figure barely moved while its legacy figure fell by
five sixths.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
098433681e
commit
1da445ae32
1 file changed
+22
-12
@@ -56,22 +56,32 @@ reports `virgl (AMD Radeon RX 7900 XT)` instead of a software rasteriser.
|
|||||||
One compositor is started for the machine and reused, on a named socket
|
One compositor is started for the machine and reused, on a named socket
|
||||||
under `XDG_RUNTIME_DIR`; it needs no seat, no DRM master and no card node.
|
under `XDG_RUNTIME_DIR`; it needs no seat, no DRM master and no card node.
|
||||||
|
|
||||||
Measured 2026-08-30, scrolling a list in the stock **Settings** app:
|
Measured 2026-08-31, scrolling the same list in the stock **Settings** app
|
||||||
|
on the same AVD with the same gesture -- so this is the platform's own cost,
|
||||||
|
with no app of ours in it:
|
||||||
|
|
||||||
| | janky frames | 90th percentile | slow UI-thread frames |
|
| | janky frames | legacy janky | 90th percentile | slow UI-thread frames |
|
||||||
|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| software | 25.5% | 93ms | 8 |
|
| software | 57.4% | 100% | 73ms | 18 |
|
||||||
| on the GPU | 3.3% | 28ms | 0 |
|
| on the GPU | 2.3% | 5.7% | 26ms | 0 |
|
||||||
|
|
||||||
An emulator also costs about **1.1 GB less** resident this way (2.9 GB
|
Read **both** jank columns. The legacy figure counts a frame against the
|
||||||
against 3.9 GB), which is a whole emulator's worth of headroom on a machine
|
16.7ms deadline and the modern one against what the compositor actually
|
||||||
that only takes two.
|
needed, so on a fast enough path the modern number can barely move while the
|
||||||
|
legacy one halves. When comparing two builds of an app in here, the legacy
|
||||||
|
column is usually the one carrying the signal.
|
||||||
|
|
||||||
|
An emulator also costs about **620 MB less** resident this way: measured
|
||||||
|
twenty seconds after boot on one AVD, 3537 MB on software against 2918 MB on
|
||||||
|
the GPU. (An earlier draft of this file said 1.1 GB. That number came from
|
||||||
|
`emu list` before the prefix bug in it was fixed, and was one emulator's size
|
||||||
|
reported against another's.)
|
||||||
|
|
||||||
This matters for more than speed. Before it, frame timings measured in here
|
This matters for more than speed. Before it, frame timings measured in here
|
||||||
said nothing at all about an app: our own app scrolled *better* than
|
said nothing at all about an app: every app was bounded by the rasteriser
|
||||||
Settings did, because both were bounded by the rasteriser rather than by
|
rather than by anything it was doing, and the stock Settings app missed
|
||||||
anything either of them was doing. Now the platform floor is low enough that
|
*every single frame's* deadline while scrolling its own list. Now the
|
||||||
an app's own jank is visible above it.
|
platform floor is low enough that an app's own jank is visible above it.
|
||||||
|
|
||||||
`GPU_HOST_FEATURES` carries the one workaround: host Vulkan is switched off,
|
`GPU_HOST_FEATURES` carries the one workaround: host Vulkan is switched off,
|
||||||
because gfxstream asks Venus for a memory type for its ColorBuffers that
|
because gfxstream asks Venus for a memory type for its ColorBuffers that
|
||||||
|
|||||||
Reference in new issue
Block a user