pop_blit_b: быстрый путь без клипа + backlog отложенной оптимизации
Клипованный путь вынесен в отдельную функцию blit_b_clip: под его девять 16-битных локалей SDCC заводит кадр IX, и за этот кадр платили ВСЕ блиты фона, включая те, где клипа нет вовсе (весь фон вне fore-прохода — факелы, зелья, перерисовка тайлов, у них pop_t_fclip_on == 0). Быстрый путь идёт сразу в gfx_blit_noclip. Замер: pop_torch_draw 41 778 -> 31 218 тактов на факел (часть разницы — прошлая правка pop_cd_touch; чистый вклад этой ~6 300 на блит). Поведение не изменилось: клипованная ветка перенесена дословно. docs/perf_backlog.md — отложенные идеи с измеренной ценой (футпринт из физики 11 574, размеры ленты из каталога атласа, один map/unmap на группу блитов, единый проход по тайлам как redraw_needed_tiles, objtable, отложенные таблицы back/mid/fore) плюс раздел «как мерить»: wait-state'ы дают 2,4x к справочным тактам, кадр 430 000, адреса символов меняются после каждой пересборки, сцена между сессиями не воспроизводится. Там же — что уже проверено и НЕ сработало. tests-host: 5/5. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -439,6 +439,15 @@ wait-state'ы, и замеренная стоимость выходит **≈ 2
|
||||
|
||||
Синяя полоса (ввод + логика) была ~60 % → стала ~29 %.
|
||||
|
||||
**Оптимизация закрыта по решению пользователя 2026-08-10.** Всё, что
|
||||
осталось неcделанным, вынесено с замерами в
|
||||
[`../docs/perf_backlog.md`](../docs/perf_backlog.md) — там же протокол «как
|
||||
мерить», чтобы не наступать заново на wait-state'ы и на устаревшие адреса
|
||||
символов. Что доделано после таблицы выше: `pop_cd_touch` развёрнут,
|
||||
tp/10 у факелов таблицей, пустой слот соперника считается тихим, ранний
|
||||
выход в fore-проходе (нулевой эффект, оставлен как порт), быстрый путь без
|
||||
клипа в `pop_blit_b` (факел 41 778 -> 31 218 тактов).
|
||||
|
||||
**Что осталось (запас на будущее, срочности больше нет):**
|
||||
|
||||
1. **`pop_char_fore` 113 628.** Внутри: `char_footprint` + расширение окна
|
||||
|
||||
Reference in New Issue
Block a user