fix(perf+sdk/ime): ①perf net_json 缺 network 对象闭合括号 → 全量 JSON 根对象不闭合/非法(MeowPanel /api/system jv_parse 失败根因,真机+python 双重证实)②IME flush 挂起(meow_gfx_flush_hold): 阻塞循环整周期只记脏、IME画完一次原子上屏,根治 on_tick 进度条与键盘同区两刷频闪 ③TextField on_change 只标脏不重画→改 meow_ui_invalidate 真重画,输入实时回显
meow_svc_perf fa073bf9→7ea196de; meow_ui.a d814d0ed→ece0ecdb; hello 2ce09466→f45ba051; launcher 9ca4c5e8→bd37c8b0(重链) 宿主验证: test_ime_fix/test_p1p2p3_repro/test_meow_ui_widgets 全 PASS; perf_host all 输出经 python json 校验合法
This commit is contained in:
1 parent
08c70aa14c
commit
896f391fee
9 files changed
+23
-5
No files matched your search
@@ -179,6 +179,12 @@ void meow_gfx_mark_dirty(int x, int y, int w, int h) { dirty_add(x, y, w, h); }
|
||||
void meow_gfx_mark_full(void) { dirty_full(); }
|
||||
void meow_gfx_dirty_reset(void) { dirty_reset(); }
|
||||
|
||||
/* flush 挂起(IME/模态阻塞循环用):挂起期间 flush/flush_region 只记脏不上屏,
|
||||
* 解除后由调用方一次 flush 原子上屏——避免「App on_tick 重绘先上屏、覆盖层随后再上屏」
|
||||
* 同一区域一帧两刷的频闪。 */
|
||||
static int g_flush_hold = 0;
|
||||
void meow_gfx_flush_hold(int on) { g_flush_hold = on ? 1 : 0; }
|
||||
|
||||
/* back_buf 每行字节数 / 位深(M2.71-bug3:模态/IME 整帧快照恢复用)。 */
|
||||
int meow_ui_back_buf_pitch(void) { return g_line; }
|
||||
int meow_ui_back_buf_bpp(void) { return g_bpp; }
|
||||
@@ -918,10 +924,10 @@ static void present(void)
|
||||
dirty_reset();
|
||||
}
|
||||
|
||||
void meow_ui_flush(void) { present(); }
|
||||
void meow_ui_flush(void) { if (!g_flush_hold) present(); }
|
||||
|
||||
void meow_ui_flush_region(int x, int y, int w, int h)
|
||||
{ dirty_add(x, y, w, h); present(); }
|
||||
{ dirty_add(x, y, w, h); if (!g_flush_hold) present(); }
|
||||
|
||||
/* ---- 帧率调度设置接口(launcher 与 app 共用;归口 PERF_SCHEDULER 显示刷新率子域)---- */
|
||||
/* 设目标档位(60/30/15):同时把当前有效档对齐到目标(与 launcher settings_load 语义一致)。 */
|
||||
|
||||
Reference in new issue
Block a user