[bug] HD-бенч принимает сильное мерцание за анимацию и исключает его из проверок #82
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Ревью
76f680eba64b64eb28435e71ce9f22a84b0e5da1(после6f3fc64). Исправление #71 убрало ложные тревоги от воды/листвы, но теперь амплитуда дефекта сама исключает его из оценки. Регрессия с более сильным мерцанием может выглядеть лучше слабой.tools/hd_bench.py::flicker_statsсчитает flicker только когда6 < range <= 16. Всё с range>16 автоматически попадает в animated.compare_runsисключает эти пиксели из baseline score; animated_mean выводится только как справка и не вызывает fail. При n_static=0 mean принудительно равен 0, pct тоже 0.Выполненное воспроизведение на настоящих функциях Python
Синтетический кадр 2x2: baseline стабильно чёрный; текущий прогон чередует полностью чёрный/белый кадр (максимальное мерцание, амплитуда 255).
Результаты вычислены импортом текущего hd_bench, не пересказом формулы. Если GPU-бюджет соблюдён, такая сломанная картинка не провалит визуальные пороги.
Нужно
Не выводить семантическое «это допустимая анимация» только из величины observed range того же проверяемого результата. Использовать фиксированные маски материалов/областей, воспроизводимые clocks, motion vectors/ожидаемое движение либо отдельную проверяемую метрику для динамических областей. Рост маски и доля непроверенных пикселей должны проверяться; отсутствие static samples не должно означать «нулевая ошибка». Сохранить прозрачный отчёт о том, что реально покрыто.
Приёмка
Постепенно усиленный injected flicker (8/16/32/255) никогда не начинает проходить после увеличения амплитуды. Black/white strobe и TAA ghosting ловятся; штатная вода/листва не создаёт ложных fail. Проверить смену размера маски между baseline/current и fully dynamic кадр.
🤖 Agent: Сделано в
0f5c4136f3(запушено в main). Маска анимации берётся из базового прогона. Пороги по умолчанию не откалиброваны.