UPD: Поднимаем FPS с 26 до 38 без сильно заметного ухудшения качества графики* (точный прирост зависит от железа).
Итак, занявшись харкорным профилированием Смуты через PIX for Windows и Nvidia Nsights Graphics, нашел пару интересных мест влияющих на производительность.
Статья с подробным исследованием проблем производительности в процессе, но сейчас я бы хотел поделиться парой советов по оптимизации перформанса через конфиги игры.
На моем железе (ноут с RTX 2060 6 GB, AMD Ryzen 7 4800H и 16 GB RAM) на рынке в Нижнем Новгороде (первая локация после пролога) на высоких настройках фпс увеличивается с 26 до 38 [UPDATED].
Кажется, что немного, но на самом деле это 31%. В миллисекундах это 12,15 ms (с 38,46 ms до 26,31 ms).
Было:
Стало:
- Выключен рейтрейсинг (r.RayTracing=False). Все равно не используется т.к. для Lumen включенный софтварный рейтрейсинг (r.Lumen.HardwareRayTracing=False). Он же требует включенным GPU Skin Cache (см. следующий пункт)
- Выключен GPU Skin Cache для SkeletalMeshes (в основном относится к персонажам). Потому что очень медленный из-за того, что использует CPU visible память через шину PCI (параметр r.SkinCache.Mode=1).
- При включенном DLSS можно отключить встроенный TSR (Temporal Super Resolution) который съедает производительность при не таком большом улучшении качества сглаживания. (параметр r.AntiAliasingMethod=4).
- Выключен CustomDepth пасс (r.CustomDepth=0). Это потенциально может сломать «ведьмачье чутье», но вроде работает.
- Hardware occlussion queries заменены на HZB Occlusion. (r.HZBOcclusion=2)
- Отключены тени от ландшафта (r.AllowLandscapeShadows=0)
- Тюнинг качества объемных облаков
- Отключен 4й каскад в Directional Light (r.Shadow.CSM.MaxCascades=3)
- Включен Occlusion culling для каждого инстанса в ISM (Instanced StaticMesh) и HISM (Hierarchical) (r.InstanceCulling.OcclusionCull=1)
- Включены некоторые оптимизации для RenderThread.
Находим файл C:\Users\<НАЗВАНИЕ ПОЛЬЗОВАТЕЛЯ>\AppData\Local\Smuta\Saved\Config\Windows\Engine.ini
и вставляем в конец вот этот блок [UPDATED]: