From 5c015739faa265499c04deb3205a8c35bf7f2dd9 Mon Sep 17 00:00:00 2001 From: Alexander Petrov Date: Wed, 12 Aug 2026 17:36:19 +0300 Subject: [PATCH] =?UTF-8?q?size-baseline:=20pageflip=20=D0=B2=D1=8B=D1=80?= =?UTF-8?q?=D0=BE=D1=81=20=D0=BE=D1=82=20=D0=BD=D0=BE=D0=B2=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BE=D0=BA=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B0=20(=D0=BD=D0=B5=20=D1=80=D0=B5=D0=B3=D1=80?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B8=D1=8F=20libbgi)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/PoP/docs/l9_invert_plan.md | 17 ++++++++++++++++- docs/size_baseline.tsv | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/applications/PoP/docs/l9_invert_plan.md b/applications/PoP/docs/l9_invert_plan.md index 481fe1f..bdc2913 100644 --- a/applications/PoP/docs/l9_invert_plan.md +++ b/applications/PoP/docs/l9_invert_plan.md @@ -103,7 +103,22 @@ в окне EI между чанками CBL-ISR армирует акселератор своим размером, см. `docs/accel-fill-budget.md`). -## I.2 Публичные vflip-блиты для row-major +## I.2 Публичные vflip-блиты для row-major — СДЕЛАНО 2026-08-12 + +Ассемблера не потребовалось вовсе: у row-major картинки вертикальное +зеркало — это порядок строк, а он задаётся ЗНАКОМ src-страйда, который +`_bgi_blit_rows_raw` и так принимает знаковым (`int sstride`) и патчит SMC +в adc-цепочку. Обёртки просто дают адрес ПОСЛЕДНЕЙ строки и `-stride`, +цена кадра та же, что у обычного блита. + +Написаны `gfx_blit_noclip_vflip`, `gfx_blit_part_noclip_vflip`, +`gfx_blit_part_vflip`; `tests/pageflip` расширен до 8 проверок, все PASS. + +Грабли, которые поймал тест: у клипающего варианта первая строка источника +обязана считаться от высоты ДО клипа (`h0`), иначе обрезка сверху экрана +сдвигает картинку — сначала формула брала уже укороченную `h`. + +### Контракт (исходное описание) Все row-major блиты приложения идут ровно через три функции (`pop_tile.c:281`, `:283`, `:286`, `:325`, `:327`): diff --git a/docs/size_baseline.tsv b/docs/size_baseline.tsv index 4352a40..37d9bfb 100644 --- a/docs/size_baseline.tsv +++ b/docs/size_baseline.tsv @@ -41,7 +41,7 @@ malloc 4461 mem_test 4555 mouse 4382 openenv 6124 -pageflip 4960 +pageflip 6334 palfile 5406 ptime 5744 rt_test 5187