fd570c7eb8
Новая целевая сцена: уровень 11 комната 15 — два факела, чомпер, страж. В отличие от 13/23 (разовый пик на каскаде плит) здесь дорога САМА статика: Кид и страж стоят, а кадр стоит 801 768 тактов = 1,86 растрового кадра, период 4 растра во всех 866 интервалах прогона. Фазы: синяя 293 238 (heal 141 048 + логика 152 190), зелёная 320 916 (loose_tick 28 872 + process_trobs 92 448 + redraw_needed 190 260), циан 187 758. Впечатление «циан ~150 % кадра» не подтвердилось: за 867 кадров разброс циана 174 такта, это 0,44 растра. Главная находка — 190 260 тактов на ОДИН тайл (pop_dbg_rdmax_tot = 1). Пламя факела запекается в ячейке правого соседа, то есть поверх чомпера, и process_trobs метит соседа (порт set_redraw_anim_right). Оригинал на такую пометку рисует ТОЛЬКО слой anim, мы же отвечаем heal 32x64 плюс полный draw_tile — со всеми слоями, которых пламя не касалось. Заодно разложена цена одного блита фона (брейкпоинты на резидентных адресах внутри pop_blit_b, temp0 на входе, 1603 блита): фиксированная накладная 6 126 тактов на ЛЮБОЙ блит — пролог с IX-фреймом 810, atlas_image 672, w0_map с чтением шапки 2 400, cd_touch 2 069, unmap 175. У самого дешёвого блита это 59 % цены, у пламени 16x18 пиксели тянут лишь 12 %. Причины ровно те, на которые указал пользователь: 16-битные аргументы там, где хватает 8 бит, и адресация через IX. perf_registry.md сводит в один отсортированный список всё отложенное из perf_green_phase (G1-G9), perf_cyan_phase (C1-C7), perf_backlog (1-7), HEAL-WIDTH и сегодняшние находки — с пометкой замер/модель/гипотеза. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>