Files
airdef/docs/RAID-STABILITY.md
T
chexit 10f24b5df8
build / mod (push) Failing after 19s
docs: record verified overlap stress and unresolved Windows report
Keep the corrected historical coverage claim, archive the real flat-world WASM run, explain trap diagnostics and the small HD trail density change.

Co-authored-by: Codex <codex@openai.com>
2026-11-03 10:54:57 +03:00

5.0 KiB
Raw Blame History

Два крупных налёта: проверка стабильности

Пользовательский отчёт: AirDef часто перестаёт работать при двух больших налётах, резкого обвала FPS перед этим не замечено. RTX 3060 + Ryzen 5600X — около 50 FPS во время налёта. Точный build, профиль эффектов и отличие отключения мода от падения всего процесса пока не подтверждены. Задача: #122.

Причина вылета не установлена; исправление причины и прирост FPS не заявлены.

Найденные пробелы старых тестов

В первом wasm_budget.toml два приказа отправлялись без тика между ними. order_raid отклоняет второй во время подготовки первого; ответ не проверялся. Кроме того, TestGame не отвечал на render ground/sections/rays: пуски могли ждать неизвестную землю вместо полноценного полёта. 69 успешных шагов не подтверждали 160 одновременно летящих целей. Старый отчёт сохранён с поправкой.

Что проверено теперь

  • Native: точный состав двух меню-пресетов «Массированный удар», 61 комплекс, плоский мир с ответами геометрии и встроенной записью. Оба приказа приняты, все 72 цели запущены, перекрытие проверено по числу одновременно живых целей.
  • Native: два приказа 40+40 «Орешников» с разделением, многими суббоеприпасами и окончанием записи.
  • Actual WASM: 64 комплекса, два принятых приказа 40+40 «Орешников», плоскость y=64 с ответами ground/sections/rays. В середине включаются shader hd и grid. 271 шаг прошёл; на тике 2102 проверено 184 цели в воздухе. Пик за весь прогон не измеряется.
  • Кадры чередуются с тиками. 2052 вызова frame стенда не означают GPU-рендер: у AirDef нет собственной реализации frame hook, основная работа идёт в tick и событиях.

Отчёт clean 2932364, engine ed7615d36: flat-wasm-raid-budget.json. Memory 64 MiB и fuel init/tick/frame/event 2B/300M/10M/1B не увеличивались. Отчёт фиксирует исходные лимиты, не измеренный расход fuel/peak memory.

python3 tools/airdef.py test-budgets
cargo test --release --manifest-path airdef-core/Cargo.toml --test scenarios overlapping_

Это проверка гостевого кода и контрактов с синтетическим host-миром. Она не воспроизводит RTX-драйвер, реальный рельеф/чанки, звук и стоимость HDR, shadow/light/smoke на GPU пользователя. Включение HD в fixture проверяет путь подготовки модовых данных, а не графическую производительность.

Диагностика следующего воспроизведения

В latest.log после остановки теперь записываются mod ID, callback, заданный и оставшийся fuel, полная цепочка ошибки. Сообщение OutOfFuel больше не объявляет тяжёлую работу бесконечным циклом. Проверка настоящим WASM /spin подтверждает, что при fuel trap останавливается только нарушивший мод. Это не доказывает, что пользовательский случай имеет ту же причину.

Нужны build identity и строки Windows latest.log вокруг остановки, состав двух налётов, HD/обычный профиль, открытые grid/monitor/replay и ответ: закрылась ли игра целиком. До этих данных не подменять диагноз увеличением fuel, отключением записи или обрезанием целей. Измерение FPS вести отдельно от поиска trap: стабильный FPS не исключает лимит WASM, а прошедший WASM-тест не исключает ошибку GPU или native host.