В ближайшем будущем мы внесём некоторые улучшения в то, как Path of Exile использует доступную видеопамять. Эта статья поясняет, каким образом перемены скажутся на вашем игровом процессе и когда ждать обновления.

Графические карты обладают определённым объёмом видеопамяти (VRAM), используемым для хранения различных ресурсов, которые мы отрисовываем в текущей игровой сцене. Если, играя на DirectX 11, нашем отрисовщике по умолчанию, вы столкнётесь с нехваткой видеопамяти, то игра продолжит работать, однако частота кадров резко снизится, поскольку возникнет необходимость отрисовывать объекты, хранящиеся в системной памяти. Графический драйвер также начнёт перемещать ресурсы туда-обратно между основной системной памятью и видеопамятью, ещё больше замедляя процесс. У пользователей с недостаточным объёмом видеопамяти производительность под DirectX11 весьма скверная.

У API рендеринга Vulkan, хотя он и обладает множеством преимуществ в плане производительности, возможность использования системной памяти в экстренных случаях, как это сделано в DirectX 11, отсутствует. Поэтому при нехватке памяти, как правило, просто происходит краш. Первоначально, когда мы выпустили бета-версию нашего отрисовщика на базе Vulkan, у некоторых пользователей случались краши в те игровые моменты, которые сильно нагружают память.

Поскольку и краши, и значительно страдающая производительность одинаково портят впечатления от игры, важно, чтобы игровой движок управлял ресурсами, загруженными в память, и выгружал те, которые недавно не использовались и, вероятно, не будут использоваться повторно в ближайшее время. За последний год мы добавили систему, выгружающую ресурсы, которые с точки зрения игры не понадобятся в ближайшем будущем, и поддерживающую использование видеопамяти на умеренном уровне. Это устранило краши и замедления, вызванные чрезмерным использованием видеопамяти, но, к несчастью, породило другие проблемы, связанные с периодом хранения ресурсов в памяти.

Поскольку теперь ресурсы загружаются и выгружаются динамически по ходу игры, мы перенастроили движок так, чтобы их можно было загружать асинхронно без пауз в отрисовке. Раньше творился спотыкающийся бардак, так как движок полностью замирал до тех пор, пока требуемый ресурс не будет окончательно загружен.

Однако что отображать, если текстура ещё не загружена? Чтобы не показывать полностью чёрную текстуру, мы внедрили технику, называемую потоковой загрузкой, при которой самые низкие MIP-уровни (т. е. низко детализированные версии) каждой текстуры всегда остаются в памяти и таким образом можно быстро отобразить что-то отдалённо напоминающее итоговое изображение. Это лучше, чем значительная потеря частоты кадров или полное отсутствие картинки. И хотя потоковая загрузка текстур – это безобидная визуальная оптимизация, ей часто ошибочно приписывают роль в проблемах, на самом деле вызванных тем фактом, что игра слишком рано выгрузила из памяти тот или иной ресурс.

Несколько абзацев назад мы назвали наше потребление видеопамяти в рамках этой системы умеренным. Это означает, что в нынешнем виде программа не задействует агрессивным образом всю имеющуюся видеопамять, что в результате раздражает игроков, потому что ресурсы без нужды преждевременно выгружаются из памяти (это проявляется, например, в предметах, которые короткое время выглядят размытыми).

Наша команда программистов движка давно занимается разработкой лучшего способа управления видеопамятью с агрессивным использованием как можно большего её объёма для хранения стольких ресурсов, сколько туда поместится. Это хорошо, потому что пользователи с графическими картами среднего уровня и выше будут гораздо реже сталкиваться с выгрузкой ресурсов, нежели сейчас. Конечно, это зависит от объёма имеющейся у вас видеопамяти, но проблемы, на данный момент связанные с выгрузкой ресурсов/потоковой загрузкой текстур, по большей части исчезнут у многих пользователей. И, разумеется, все вышеописанные изменения означают, что у пользователей с графическими картами нижнего уровня не будут случаться краши или резкое падение частоты кадров при нехватке видеопамяти.

Первоначально мы планировали внедрить данные изменения вместе с очередным обновлением движка, ранее назначенным на неделю-две до запуска 3.15 в июле. Однако нас очень не устраивает текущее положение дел, и поэтому мы трудимся над добавлением этого функционала в игру в ближайшем будущем (в идеале на следующей неделе, но мы уточним сроки по ходу тестирования).

Данное изменение – не панацея от всех проблем с графикой/производительностью в игре, но, без сомнения, значительно улучшит ситуацию для большинства пользователей. Наша команда по работе с движком продолжит выискивать дальнейшие проблемы и решать их. Как всегда, благодарим вас за ваши отзывы и сообщения об ошибках.
Сообщение 
Grinding Gear Games
О как, прям вспоминаю свой пост когда объяснял работу движка =)

"
Раньше творился спотыкающийся бардак, так как движок полностью замирал до тех пор, пока требуемый ресурс не будет окончательно загружен.

Странные ошибки на самом деле и у меня большие сомнения что тут кодеры виноваты, такие косяки бывают когда начальство не слушает из-за сроков, а потом тратят больше средств и времени что бы это исправить.

В общем ничего нового, когда у ггг дойдут руки до лута который скапливается сотнями под ногами игрока, дайте возможность лут фильтру полностью скрывать объекты из поля зрения и обработки, это 99% просто просчеты в пустую или удалите большую часть этого хлама, который полезен только в самом начале придумав замену, интересно когда будет работа с утечкой памяти, уже какую лигу при долго запущенном клиенте фпс проседает, чем дольше тем больше, приходиться перегружать клиент, иногда засыпаю с включенной поехой и когда просыпаюсь вижу картину -15 фпс, а если клиент был свернут то может еще переглючить, раньше вообще вылетал если клиент был в свернутом режиме более ~5минут.

Так же при сильно загруженных картах пора уже вводить режим дающий возможность ограничивать кол-во спец эффектов оставляя только важные, динамическое разрешение это все ерунда, проблема в кол-ве частиц, даже в вов есть режим для рейдов хоть и не совсем то о чем я, ну суть думаю понятна, на хот кей запускать пресет настроек для таких карт, а то на делириуме с 5 орбами это просто какой-то крендец.

Оптимизация клиента для слабых машин это конечно хорошо, но хотел бы все таки более капитальных изменений о которых писал, уже пора.
✨ Beta tester Path of Nerf 👀
Последняя редакция: spokipo. Время: 12 мая 2021 г., 23:39:23
дайте угадаю, что нас ждут ошибки с переполнением видеопамяти и попытками записать/прочитать из того диапазона памяти, которого нет ))
☠️
"
MikaelBox написал:
дайте угадаю, что нас ждут ошибки с переполнением видеопамяти и попытками записать/прочитать из того диапазона памяти, которого нет ))

Да это классика, реворк и баланс они так же делают, сначала сломают, потом допиливают. Лучникам привет =)
✨ Beta tester Path of Nerf 👀
Последняя редакция: spokipo. Время: 12 мая 2021 г., 23:42:42
"
Первоначально мы планировали внедрить данные изменения вместе с очередным обновлением движка, ранее назначенным на неделю-две до запуска 3.15 в июле. Однако нас очень не устраивает текущее положение дел, и поэтому мы трудимся над добавлением этого функционала в игру в ближайшем будущем (в идеале на следующей неделе, но мы уточним сроки по ходу тестирования).

На столько ускорились? Сильно

неееееееееееееет! ничего не трогайте! не надо опять доламывать что-то!!! опять всё по поезде пойдёт!!!!!
www.twitch.tv/eroxoff
Лучшая новость за всю лигу. У еня 6гигобатов и игра использует всего 2. и это неправильно.
"
RazGam1ng написал:
неееееееееееееет! ничего не трогайте! не надо опять доламывать что-то!!! опять всё по поезде пойдёт!!!!!

дурачок шоле?
Надеюсь после ваших "оптимизаций" хуже не станет, как это обычно и бывает.
Надеюсь видеопоток настолько улучшится, что мы увидим старый харвест

Пожаловаться на запись форума

Пожаловаться на учетную запись:

Тип жалобы

Дополнительная информация