Repository navigation
Release 0.9.4 dev.15
Release: 0.9.4
Build: 0.9.4-dev.15
Status: MatrixPortal persistent-source-cache qualification
Dev.15 advances only the MatrixPortal ESP32-S3 PSRAM path. Dev.14 transient staging passed on physical hardware with 19/19 successful staging attempts, zero fallback, a 173,821-byte largest active source and recovery of the current largest PSRAM block to 1,933,312 bytes.
Dev.15 keeps the transient policy unchanged and enables bounded persistent source reuse for durable Carousel GIF files. Waveshare behavior is unchanged.
- transient stage maximum: 256 KiB;
- pre-allocation PSRAM reserve: 1 MiB;
- persistent source-cache budget: 384 KiB;
- maximum persistent entry: 256 KiB;
- metadata entries: 8;
- replacement: existing LRU policy;
- Carousel look-ahead prefetch: disabled;
- transient/app
/idot_play.gif: not persistent.
Dev.15 adds IDOT_GIF_CAROUSEL_PREFETCH_ENABLED so speculative look-ahead can be qualified independently from cache residency. MatrixPortal explicitly sets the switch to zero. The source-stage prefetch() implementation remains unchanged and Waveshare keeps its already-qualified one-item look-ahead behavior.
Run several Carousel loops and verify:
-
build=0.9.4-dev.15; -
gifStage max:262144 reserve:1048576; -
gifSourceCache maxEntries:8 maxBytes:393216 entryMax:262144; - cold playback creates cache stores;
- later loops create cache hits;
-
gifPrefetch attempts:0; -
gifStage fallback:0; - PSRAM low-water invariants remain valid;
- no visible playback regression or persistent largest-block loss appears.
The 384 KiB cache is intentionally smaller than the full seven-GIF corpus so normal hardware testing can exercise LRU behavior.
iDotMatrix WLED Usermod 0.9.4 — stable release
- Home
- Release 0.9.4
- Release 0.9.3
- Release 0.9.2
- Release 0.9.1
- Release 0.9.0
- Getting Started
- Hardware
- Implementation
- Build / Validation