Реестр: P6a закрыт (-840), P6b оставлен неделанным
Оценка пары P6a/P6b была -20 000, факт по P6a — -840. Записана причина: оценку я перенёс по аналогии с лучом видимости, где трамплин звался девять раз за кадр, а тут trob'ов в комнате всего несколько. Урок в реестре: «тот же паттерн» не означает «тот же порядок величины». P6b (кэш префетча, 11 058) не делался: инвалидацию пришлось бы ловить из трёх источников (pop_level_set_tile, вход в комнату, добавление trob), а пропуск любого даёт застывшую анимацию. Бюджет лёгкой позиции: 437 484, до цели 7 484. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -352,6 +352,30 @@ SDCC z80 разворачивается в `sbc` плюс `jp PO / xor 0x80 / jp
|
|||||||
`pop_sprite_size_limits`). **−276 в статике, −1 134 в циане динамики**,
|
`pop_sprite_size_limits`). **−276 в статике, −1 134 в циане динамики**,
|
||||||
плюс 24 байта `_DATA`.
|
плюс 24 байта `_DATA`.
|
||||||
|
|
||||||
|
### P6a. Кэш указателя модификаторов ✅ 2026-08-19 — −840 (ждали −20 000)
|
||||||
|
|
||||||
|
`pop_trob_modif` объявлен `__banked`, а звался на КАЖДЫЙ trob внутри цикла
|
||||||
|
`pop_process_trobs`, хотя комната у них в подавляющем большинстве кадров
|
||||||
|
одна. Указатель теперь кэшируется между итерациями.
|
||||||
|
|
||||||
|
Цикл trobs 78 726 → **74 964**, работа кадра 438 324 → **437 484**.
|
||||||
|
|
||||||
|
**Оценка в реестре была завышена в двадцать раз**, и стоит понять почему:
|
||||||
|
я перенёс её по аналогии с лучом видимости (P2b), где трамплин звался
|
||||||
|
ДЕВЯТЬ раз за кадр. Здесь trob'ов в комнате всего несколько, и кэш
|
||||||
|
экономит два-три вызова. **Урок: «тот же паттерн» не означает «тот же
|
||||||
|
порядок величины» — считать надо число вызовов, а не узнавать шаблон.**
|
||||||
|
|
||||||
|
### P6b. Кэш префетча кодов тайлов — НЕ ДЕЛАЛОСЬ
|
||||||
|
|
||||||
|
Префетч (`pop_level_access_begin/end` плюс чтение кода на каждый trob)
|
||||||
|
стоит **11 058** за кадр. Кэшировать мешает инвалидация: код тайла меняет
|
||||||
|
`pop_level_set_tile` (кнопка → пол, loose → empty), вход в комнату и
|
||||||
|
добавление trob'а — пропустить хоть один источник значит получить
|
||||||
|
застывшую анимацию. С учётом того, что P6a дал 840 вместо 20 000,
|
||||||
|
ожидаемый выигрыш тут тоже стоит считать скромным, а риск он несёт
|
||||||
|
несоразмерный.
|
||||||
|
|
||||||
### P18. Метка «фон трогали» огрублена по X — ОТЛОЖЕНО (решение пользователя)
|
### P18. Метка «фон трогали» огрублена по X — ОТЛОЖЕНО (решение пользователя)
|
||||||
|
|
||||||
**Найдено 2026-08-19 пользователем:** Кид перерисовывается, хотя с пламенем
|
**Найдено 2026-08-19 пользователем:** Кид перерисовывается, хотя с пламенем
|
||||||
@@ -625,7 +649,8 @@ BUG-LATTICE-DOORTOP, BUG-SEAM-WEDGE-1) — только отдельным за
|
|||||||
| после P15, тяжёлая | 617 487 | 245 808 | 181 761 | 192 090 | **4 везде** |
|
| после P15, тяжёлая | 617 487 | 245 808 | 181 761 | 192 090 | **4 везде** |
|
||||||
| после P16, лёгкая | 438 978 | 218 052 | 181 494 | 39 438 | 4 |
|
| после P16, лёгкая | 438 978 | 218 052 | 181 494 | 39 438 | 4 |
|
||||||
| ~~после P4~~ | ~~438 570~~ | | | | правка **ОТКАЧЕНА** |
|
| ~~после P4~~ | ~~438 570~~ | | | | правка **ОТКАЧЕНА** |
|
||||||
| **после P17, лёгкая** | **438 324** | 217 590 | 181 098 | 39 192 | 4 |
|
| после P17, лёгкая | 438 324 | 217 590 | 181 098 | 39 192 | 4 |
|
||||||
|
| **после P6a, лёгкая** | **437 484** | 217 704 | 180 252 | 39 306 | 4 |
|
||||||
| **после P17, тяжёлая** | **603 684** | 241 956 | 181 464 | 180 270 | 4 |
|
| **после P17, тяжёлая** | **603 684** | 241 956 | 181 464 | 180 270 | 4 |
|
||||||
|
|
||||||
Итог восьми позиций: **801 768 → 464 796 в лёгкой позиции (−42 %)** и
|
Итог восьми позиций: **801 768 → 464 796 в лёгкой позиции (−42 %)** и
|
||||||
@@ -637,7 +662,7 @@ BUG-LATTICE-DOORTOP, BUG-SEAM-WEDGE-1) — только отдельным за
|
|||||||
Цель: работа ≤ 430 000, тогда период станет 3 растра (хвост кадра — три
|
Цель: работа ≤ 430 000, тогда период станет 3 растра (хвост кадра — три
|
||||||
`gfx_wait_vsync`).
|
`gfx_wait_vsync`).
|
||||||
|
|
||||||
- в ЛЁГКОЙ позиции снять надо **8 324**;
|
- в ЛЁГКОЙ позиции снять надо **7 484**;
|
||||||
- в ТЯЖЁЛОЙ — **173 684**.
|
- в ТЯЖЁЛОЙ — **173 684**.
|
||||||
|
|
||||||
**Лёгких путей больше не осталось.** За 2026-08-19 отвергнуто ЧЕТЫРЕ
|
**Лёгких путей больше не осталось.** За 2026-08-19 отвергнуто ЧЕТЫРЕ
|
||||||
|
|||||||
Reference in New Issue
Block a user