Gamedev suffering
9.61K subscribers
1.01K photos
92 videos
13 files
2.45K links
Авторский блог Андрея Апанасика о разработке игр и индустрии.

Разрабытываю сервис для оперирования LiveOps: https://balancy.co

Мысли про другие вещи мне интересные: @apanasik_jobless

Реклама: https://t.iss.one/gamedev_suffering/2202
Download Telegram
Forwarded from TechArt - Archive (Oleg Pivovarov)
#TAA_UE5 #TAA_AMD #TAA_BugHunter
#TAA_WTF
Hi! Немного не было сил, последний месяц пришлось разбираться с нехарактерными для меня вещами.

Энивей, держите полезное.

Начиная с Мая месяца, AMD выпустили новые драйвера.
И на всех проектах на UE возникли проблемы - на спавне VFX наблюдается фриз на 100+ms, а геометрию VFX рвет в клочья.
Проблема оказалась на уровне Ribbon module в Niagara.

Несоответствие между размером структуры FRibbonAccumulationValues в шейдере (NiagaraRibbonCommon.ush) и stride size в TransientAccumulation buffers.

В общем стандартное регулярное багло эпиков с компьютами (привет pcg hlsl, привет ui instancing, привет srv просящий uav[WTF]).
Правда на этот раз в дело вмешались AMD и начали всем бить по рукам...

Окей, как чинить?
1. Если вам не нужно здесь и сейчас никуда отправлять билд, или же релизиться -дождитесь 5.7, в него уже должны были внедрить фикс.
2. Заменить GPU Sim на CPU sim в эмиттерах использующих ribbon.
3. Поправить NiagaraRendererRibbons.cpp - добавить проверку на 583 строке:
if (TransientAccumulation[0].NumBytes < (AccumulationBufferStructSize * NeededSize) || (TransientAccumulation[0].Buffer->GetStride() != AccumulationBufferStructSize))
🫡29😱7❤‍🔥3🔥1