jtube-tv/app
Jeena 9b96d03384 app: cap Coil's parallel fetch and decode work on TV hardware
A sched trace on the TV (release build) caught the real "2fps": not a
slow frame, but a starved one. During navigation the render pipeline
(app RenderThread, SurfaceFlinger/RenderEngine, the mali driver worker,
the Dolby audio service) saturated all four cores together with Coil's
image work — a burst of parallel ~30 ms bitmap decodes split across the
whole IO pool descheduled the main thread hundreds of times and froze
navigation for over a second.

The image loader now caps the request dispatcher at 2 parallel ops and
the decode/transformation pools at 2/1: images still fill in steadily
while scrolling but can no longer eat every core at once. Combined with
the release build on the TV (debug's JIT bursts produced 900 ms+ frames
by themselves), the same navigation settles at p90 ~13 ms per frame
with a worst frame of ~180 ms when a new row composes.
2026-10-20 08:00:13 +00:00
..
src app: cap Coil's parallel fetch and decode work on TV hardware 2026-10-20 08:00:13 +00:00
build.gradle.kts build: sign the release variant with the debug key 2026-10-14 00:53:05 +00:00
proguard-rules.pro app: Scaffold Android TV PeerTube client (MVP) 2026-10-10 10:20:02 +00:00