图库: 修 M32 评审 P2(预算注释按 3 槽口径,纯注释)
- reader.c 头注释与页缓存注释:真机 480×853 页「单页 1599KB → 800KB(−50%); 3 槽常驻 3.2MB → 2.4MB」,不再是「两页 1.6MB」。 - MR_RESIDENT_CAP 注释:典型稳态 3 槽 = 2.4MB(窗口只落 2 页时 1.6MB),上限 3.2MB。 - 无判定/常量/代码改动(git diff 只有注释行)。
This commit is contained in:
1 parent
f647a3c498
commit
db92cbd95a
1 file changed
+4
-4
@@ -17,8 +17,8 @@
|
||||
* 重解一次;拖动/吸附帧只 invalidate 内容区(顶栏静态不重绘)。
|
||||
* 内存(M17 起;M22 按真机实测重定;M27 接真缩解后端;M32 页槽改 RGB565):
|
||||
* 槽里常驻的是**已落框的 565 位图**(2B/px),单页上限 1.5MB(旧 RGBA 3MB 的同几何口径)、
|
||||
* 整窗常驻上限 3.2MB(3 槽 + 1 张在途,超限淘汰最远页)。真机 480×853 页 1599KB → 800KB,
|
||||
* 两页常驻 3.2MB → 1.6MB。解码仍产出 RGBA,worker 当场转 565 再释放 RGBA;这笔暂存
|
||||
* 整窗常驻上限 3.2MB(3 槽 + 1 张在途,超限淘汰最远页)。真机 480×853 页单页 1599KB → 800KB
|
||||
* (−50%);3 槽常驻 3.2MB → 2.4MB。解码仍产出 RGBA,worker 当场转 565 再释放 RGBA;这笔暂存
|
||||
* (2B/px)由 reader_estimate_peak 的 convert_bytes 计入预算。解码路径与峰值预算由
|
||||
* page_source 的 reader_estimate_peak()
|
||||
* 统一判定(唯一实现,本文件不再另写模型):
|
||||
@@ -97,7 +97,7 @@
|
||||
#define MR_SLOT_BYTES (800L * 1024) /* 真机典型页(480×853)的 565 字节 */
|
||||
/* 常驻总上限 = 3 槽 + 1 张「已解码未落槽」的在途结果 = 4 × 800KB = 3.2MB。
|
||||
* 旧口径 3MB 只算槽内 RGBA(3 槽最坏 4.8MB,且在途结果完全没算);565 后把在途结果
|
||||
* 一起算进来,真实上限反而收紧。典型稳态(2 页)1.6MB,只有上限的一半。 */
|
||||
* 一起算进来,真实上限反而收紧。典型稳态 3 槽 = 2.4MB(窗口只落 2 页时 1.6MB),上限 3.2MB。 */
|
||||
#define MR_RESIDENT_CAP (4 * MR_SLOT_BYTES)
|
||||
#define MR_SLOT_TOL 2 /* 缓存图与显示框允许的像素偏差(≤2 走原生 blit,不重采样) */
|
||||
|
||||
@@ -164,7 +164,7 @@ static int g_fail_paint; /* 窗口内出现解码失败页 → tick
|
||||
|
||||
/* ---- 页图缓存(≤3 槽,RGB565 常驻)----
|
||||
* 槽里存的是**已落框**的 565 位图(2B/px),不是解码器的 RGBA:真机 480×853 页
|
||||
* 1599KB → 800KB,两页常驻 3.2MB → 1.6MB。命中页绘制 = 每行一次 memcpy(M32)。 */
|
||||
* 单页 1599KB → 800KB(−50%),3 槽常驻 3.2MB → 2.4MB。命中页绘制 = 每行一次 memcpy(M32)。 */
|
||||
typedef struct page_bmp {
|
||||
int w, h;
|
||||
uint16_t *px; /* w*h,行优先,RGB565(不透明) */
|
||||
|
||||
Reference in new issue
Block a user