图库: 修 M32 评审 P1(plan_decode_long 仍按 4B/px)+ 补 480×853 回归(r2)
- P1:plan_decode_long 的判据从 l*s*4 改成 l*s*2(MR_PAGE_BYTES_CAP 已是 565 口径)。 改前真机 480×853 页被压到 359×639(448KB)且每帧重采样;改后原尺寸落槽 799KB、 绘制走原生 blit(scaled 增量 0)。 - 测试:新增 perf P13 —— 480×853 单页册,断言 slot_kb==480*853*2/1024、resident 相等、 draw 后 blit 增长且 scaled 增量为 0;现有夹具(480×640/600×960)都在阈值以下,抓不到。 - P2:decode 日志 ok/fail 也打 peak+convert(与 skip 同口径);CBZ 500 页的「前缀字节」 改成 mz_read_prefix 实测(不再用 500×4096 硬算),并说明 zlib 窗口不计入 --wrap 峰值; 565 页图 alpha 忽略的行为差异写进 meow_ui_draw.h / gfx 注释;MR_ZOOM_TEMP_CAP 注释更正。
This commit is contained in:
1 parent
7036020005
commit
f647a3c498
5 files changed
+84
-16
No files matched your search
@@ -20,6 +20,8 @@
|
||||
* a) 565 blit 与 RGBA blit 在 565 屏上**逐像素一致**(同一套量化 → 不引入色偏);
|
||||
* b) 565 量化误差在理论上界内(R/B ≤7、G ≤3),并给出 RMSE 与代表性采样;
|
||||
* c) 8bit 灰阶梯/肤色渐变单调、无新增色带(与 RGBA 路径的阶梯数完全相同)。
|
||||
* P13(M32 评审 P1):真机主力几何 480×853 —— 单页按 565 原尺寸落槽(~800KB)、
|
||||
* 绘制走原生 blit、零重采样(plan_decode_long 曾仍按 4B/px 把它压到 359×639)。
|
||||
*
|
||||
* 编译:test/run_tests.sh(与 test_open_book_host 同口径;只发布 meow_ui.a 时 SKIP)。
|
||||
*/
|
||||
@@ -499,6 +501,45 @@ int main(void)
|
||||
/* ---- P12(M32):565 页槽的颜色正确性(需要 565 屏的 back_buf)---- */
|
||||
color_check();
|
||||
|
||||
/* ---- P13(M32 评审 P1):真机主力几何 480×853 —— 565 下必须**原尺寸落槽 + 单次 blit** ----
|
||||
* 回归点:plan_decode_long 曾仍按 4B/px 判单页上限,把 480×853 压到 359×639(448KB),
|
||||
* 于是每一帧都走 meow_gfx_blit_rgb565_scaled(重采样)。断言同时看字节与绘制路径,
|
||||
* 光校验常量(page_px_cap()==786432)抓不到这个执行侧回归。 */
|
||||
{
|
||||
char book4[MR_PATH_MAX], p4[MR_PATH_MAX];
|
||||
snprintf(book4, sizeof book4, "./mr_perf_books_%ld/v4", (long)getpid());
|
||||
snprintf(p4, sizeof p4, "%s/t853.bmp", book4);
|
||||
int ok4 = mkdir_p(book4) == 0 && write_bmp24(p4, 480, 853, 11) == 0;
|
||||
if (!ok4) {
|
||||
printf(" SKIP: 480x853 fixture write failed\n");
|
||||
} else {
|
||||
meow_view_page_pop(); /* 关掉 600×960 那册 */
|
||||
mr_reader_open_dir(book4);
|
||||
pump_ms(900);
|
||||
draw_once();
|
||||
int p13 = mr_reader_ui_page();
|
||||
long slot = mr_reader_ui_slot_kb(p13);
|
||||
/* 480×853 = 409,440px × 2B = 818,880B = 799.6KB(截断 799;真机口径 ~800KB)。
|
||||
* 按 4B/px 误算时会被压到 359×639 = 448KB。 */
|
||||
printf(" info: 480x853 resident=%ldKB slot=%ldKB blit=%d scaled=%d\n",
|
||||
mr_reader_ui_resident_kb(), slot,
|
||||
mr_reader_ui_blit_draws(), mr_reader_ui_scaled_draws());
|
||||
CHECK(mr_reader_ui_count() == 1, "480x853 单页册 count=%d", mr_reader_ui_count());
|
||||
CHECK(slot == 480 * 853 * 2 / 1024,
|
||||
"480×853 按 565 原尺寸落槽:%ldKB(约 800KB;误按 4B/px 时只有 448KB)", slot);
|
||||
CHECK(mr_reader_ui_resident_kb() == slot,
|
||||
"单页册常驻 = 槽内字节(%ldKB)", mr_reader_ui_resident_kb());
|
||||
int bl13 = mr_reader_ui_blit_draws(), sc13 = mr_reader_ui_scaled_draws();
|
||||
draw_once();
|
||||
CHECK(mr_reader_ui_blit_draws() > bl13,
|
||||
"480×853 页绘制走原生 565 blit(+%d)",
|
||||
mr_reader_ui_blit_draws() - bl13);
|
||||
CHECK(mr_reader_ui_scaled_draws() == sc13,
|
||||
"480×853 页零重采样(scaled 增量 %d)",
|
||||
mr_reader_ui_scaled_draws() - sc13);
|
||||
}
|
||||
}
|
||||
|
||||
/* ---- P9 800x1280(评审表格另一档):翻页 + 条漫都必须零重采样 ---- */
|
||||
meow_view_page_pop();
|
||||
mr_reader_open_dir(book2);
|
||||
|
||||
Reference in new issue
Block a user