Реклама | Adv
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
Сообщения форума
Реклама | Adv

Разъяснение по возможным причинам падения производительности в версиях 0.5.14...

Дата: 01.12.2016 20:51:05
Santcoder: С выходом обновлений 0.5.14 и 0.5.15 некоторые из пользователей столкнулись с проблемой падения производительности игрового клиента в World of Warships. Со стороны проекта видится необходимость дать развернутые пояснения, что могло послужить причиной и как последние технологические нововведения влияют на производительность клиентской части в зависимости от выбранного игроком разрешения экрана. Но обо всем по порядку. Для начала дадим пояснения понятиям CPU-bound и GPU-bound. CPU – центральный процессор системы, GPU – процессор графической карты, которая установлена в системе. Чьих ресурсов приложение потребляет больше, от нехватки каких ресурсов она сильнее зависит, к той подсистеме она и «привязана» - bound.     CPU-bound и GPU-bound, в чем разница? Кадр строится на GPU и CPU параллельно. Что кадр больше обрабатывает, то и будет bound. Эта же система, как правило, и причина фризов и лагов. При этом если на GPU кадр закончит обрабатываться раньше, чем на CPU, то в это в время GPU "отдыхает". Что и выражается в сниженной нагрузке, недогрузке до 100% и так далее.   Теперь касательно нашей игры. В большинстве случаев наша игра CPU-bound. Это касается всех боев. Мы получаем данные с сервера, ждем их, обрабатываем, строим траектории полетов снарядов, проигрываем музыку, получаем голосовые сообщения, считаем время полета снаряда для прицела. В результате мы упираемся в CPU, а GPU простаивает в эти моменты. То есть на CPU посчитали кадр за 18мс, на GPU за 12мс, 6мс каждый кадр GPU отдыхает. Это все очень упрощенно, потому что у нас еще есть треды, ядра и т.д. Мы рассматриваем лишь "подсистемы" и их взаимодействие с друг другом.   В большинстве случаев наша игра CPU-bound, исключение составляет порт, в котором нагрузка на процессор столь мала, что та небольшая нагрузка, которая есть на GPU, становится основной, и наша игра превращается в GPU-bound. Именно поэтому в порту нагрузка на GPU 100% - потому что CPU там почти всегда простаивает, а не потому что там что-то дополнительно обрабатывается на GPU.   Но есть и еще одно исключение - очень большие разрешения экрана, например, 4К.      Данное разрешение приблизительно в 4 раза по площади больше чем FullHD (1920x1080), что существенно увеличивает нагрузку на видеокарту. В разрешении 1920x1080 наша игра ведет себя как CPU-bound, но в разрешении 4K нагрузка на GPU значительно увеличивается. В результате мы перемещаемся в зону GPU-bound, и настройки графики, влияющие на GPU, которые не давали существенных просадок при разрешении 1920х1080, начинают проявлять себя значительно сильнее, в плане производительности.   В частности, к таким настройкам относятся сглаживание MSAA и «Дополнительные отражения» (SSR).   «Дополнительные отражения» (SSR) выдержка из патчноута Добавлена графическая настройка «Дополнительные отражения (SSR)». Она направлена на улучшение качества отражений: Cнижает мерцание отражения при движении камеры. Повышает качество отражения на ближнем плане и дополняет отсутствующие отражения на заднем плане.     Для наглядности мы провели несколько тестов с разрешением 4К на следующей конфигурации:   Результаты представлены в таблице:   Разрешение/Режим MSAA Off | SSR off MSAA Off | SSR Medium MSAA8x | SSR Off MSAA 8x | SSR Medium MSAA 8x | SSR High 1920x1080 63.6 FPS 63 FPS 61.5 FPS 61.2 FPS 60.5 FPS 3840 × 2160 51 FPS 47 FPS 39 FPS 35 FPS 34 FPS             Таким образом, мы видим что если при FullHD разрешении MSAA 8x и SSR практически не влияют на FPS, хотя и могут несколько увеличивать нагрузку на GPU. В то же время, на разрешении 4K просадка FPS становится очень заметной. Стабилизация проекта под разрешение 4К - это отдельная, большая и сложная технологическая задача. И в данный момент для "Кораблей" она не решена. Именно поэтому в системных требованиях на официальном сайте игры указано рекомендуемое максимальное разрешение — 1920*1080.   Помимо влияния непосредственно на FPS, увеличение качества режима MSAA вместе с включением SSR значительно повышает требования к памяти GPU, что также может приводить к появлению мелких фризов. В качестве рекомендации, возможно несколько вариантов, на ваш выбор: Снижение и подбор разрешения, при котором просадки производительности становятся менее заметными. Снижение MSAA до 4x  - визуально, разницы между 8х и 4х практически нет, а разница в производительности значительная Выключение дополнительных отражений или снижение их качества до приемлемого.     Если никакая из перечисленных рекомендаций вам не помогла, просьба отписаться в личку мне, alexbljack или в профильной теме фидбека

Реклама | Adv