Опенворлд на UE 5.7, World Partition, почти вся статика на Nanite. Целевое железо — Ryzen 5 5600 + RTX 3060, по опросам это сейчас типичная машина у нашей аудитории в СНГ, ниже опускаться не планируем.
Проблема: при быстром перемещении по миру ловим хитчи по 60-120 мс. Шейдерные статтеры победили — r.PSOPrecaching=1, прекомпиляция на первом запуске, тут всё чисто. Но traversal stutter при подгрузке ячеек остался. stat streaming показывает пики ровно в момент загрузки HLOD-ов и спавна контента ячейки.
Что уже пробовал: поднял пулы стриминга текстур, перевёл сборку на IoStore. Стало лучше, но 90-я перцентиль фреймтайма всё равно уродливая. Куда копать дальше?
UE 5.7: PSO precaching включён, а фризы при стриминге мира никуда не делись
Рейтинг: 64.6% · 7 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
✔ Лучший ответ сформирован автоматически — gpu_chan
@Austkin, Проходили это на 5.6, расскажу разбор, может совпадёт. У нас хитчи оказались вообще не про I/O. Профилировали через Unreal Insights: открываешь трейс, смотришь Game Thread в момент хитча — и видишь, что время жрёт не FlushAsyncLoading, а спавн акторов. Конструкторы блюпринтов делали тяжёлую работу: поиск компонентов, чтение data table, регистрация в менеджерах. На одной ячейке могло спа…
- rabbitsmith
- Сообщения: 7
- Зарегистрирован: 17 май 2026, 00:39
Re: UE 5.7: PSO precaching включён, а фризы при стриминге мира никуда не делись
@Austkin, Первое, что проверил бы — размер ячеек World Partition. Дефолтные 256 метров для плотного контента слишком жирные: ячейка въезжает целиком и игра давится. Мы дробили до 128, а в городских кусках до 64. Второе — s.AsyncLoadingTimeLimit: дефолтные 5 мс на кадр под асинхронную загрузку это много для 60 fps, мы зажали до 2 мс, загрузка размазалась, пики ушли.
Re: UE 5.7: PSO precaching включён, а фризы при стриминге мира никуда не делись
✔ Лучший ответ — сформирован автоматически
@Austkin, Проходили это на 5.6, расскажу разбор, может совпадёт. У нас хитчи оказались вообще не про I/O. Профилировали через Unreal Insights: открываешь трейс, смотришь Game Thread в момент хитча — и видишь, что время жрёт не FlushAsyncLoading, а спавн акторов. Конструкторы блюпринтов делали тяжёлую работу: поиск компонентов, чтение data table, регистрация в менеджерах. На одной ячейке могло спавниться 300+ акторов за кадр.
Что сделали: вынесли горячие классы в C++, инициализацию сделали ленивой, на повторяющиеся объекты — пулинг. Отдельно размазали спавн по кадрам бюджетом 1.5 мс.
Цифры: 95-я перцентиль кадра была 48 мс, стала 21 мс на той же сцене. Заняло три недели на двоих.
Про Nanite Foliage из 5.7: взяли, минус ~3 мс на GPU на лесных биомах, штука рабочая. Но важно понимать — статтеры это почти всегда game thread, GPU-фичами они не лечатся.
Что сделали: вынесли горячие классы в C++, инициализацию сделали ленивой, на повторяющиеся объекты — пулинг. Отдельно размазали спавн по кадрам бюджетом 1.5 мс.
Цифры: 95-я перцентиль кадра была 48 мс, стала 21 мс на той же сцене. Заняло три недели на двоих.
Про Nanite Foliage из 5.7: взяли, минус ~3 мс на GPU на лесных биомах, штука рабочая. Но важно понимать — статтеры это почти всегда game thread, GPU-фичами они не лечатся.
Re: UE 5.7: PSO precaching включён, а фризы при стриминге мира никуда не делись
Раз IoStore уже есть — проверь, что контейнеры реально с Oodle-компрессией и что у игроков не HDD. У нас четверть аудитории сидела на жёстких дисках, и для них никакой тюнинг не помогал, пока не сделали отдельный пресет с агрессивным префетчем. И ещё момент: DX12 против Vulkan на картах уровня 1660/2060 ведёт себя по-разному именно по хитчам, прогоните оба бэкенда на стенде, результат может удивить.
Re: UE 5.7: PSO precaching включён, а фризы при стриминге мира никуда не делись
@b1llyn0m, Непопулярное мнение: половина жалоб на «статтеры UE5» — это банально GPU-bound фреймтайм, который люди путают с хитчами. На 3060 с Lumen и виртуальными тенями в опенворлде вы и так живёте на 35-45 fps, и любая просадка ощущается как фриз. Замерьте честно: если хитч виден в Game Thread трейсе — лечите стриминг, если нет — выключайте Lumen, пеките свет, и внезапно «статтеры» исчезнут. Мы для слабых пресетов так и сделали, отзывы про фризы упали в разы.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Внедрили ClickHouse, а Postgres всё равно никуда не делся. Так и должно быть?
20 ответов · 1698 просмотров
-
- Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами
5 ответов · 12 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость