Shader problem (completed?)

Хей (кто бы ты ни был отнеси это разработчику графики пожалуйста) @everyone.

На протяжении нескольких лиг заметна одна интересная проблема. Компиляция шейдеров "на лету" или же их загрузка. Я буду использовать разные термины так как недостаточно компетентен в этом вопросе.
Компиляция или же загрузка шейдеров становиться все более и более заметной проблемой не только из за "статтеров" во время игры на “карте” но и при 2,3-5 минутной загрузке в город когда та самая "полоска шейдеров" 100% и твой CPU загружен довольно сильно.

И я точно знаю что сам город (или MTX хайдаут) уже загрузился и мне приходят сообщения и звуки от других игроков но загрузочный экран не пропадает так как "критическая масса" шейдеров еще не скомпилировалась или не загрузилась.
Шейдеры это вообще достаточно серьезная проблема не только для быстрых переходов и "статтеров" но и для владельцев старых процессоров для которых такая нагрузка может привести к вылету из игры. (Вы сами можете интерполировать вышесказанное для HC)

Но в реальном мире на самом деле уже существует решение подобной проблемы.
Это предварительная загрузка или же предварительная компиляция шейдеров.
Да та самая функция что занимает десятки минут а еще чаще целые часы.
Но подобные “недостатки” все же меркнут перед проблемой которую мы можем решить.

Прежде чем вы будете читать все остальное заранее скажу что я недостаточно компетентен в теме и могу в корне ошибаться. Я также хочу явно заявить. Если мои мысли в чем то неверны пожалуйста укажите на это даже используя тяжелый для понимания технический язык. Так как полный честный ответ гораздо лучше чем ответ в духе. “Это сложно реализуемо”.

И так мое предложение -
Создать в меню -> Настройки -> Графика -> Расширенные настройки.
Добавить внизу пункт который будет называться (Принудительная компиляция).
Или любое другое корректное название для этой функции.
Также можно добавить обязательное уведомление о том что это "бета функция в разработке" и нужно быть осторожными. ИЛИ ВООБЩЕ ДОБАВИТЬ ЭТУ ФУНКЦИЮ ТОЛЬКО МНЕ И ВАШИМ ТЕСТИРОВЩИКАМ.

Как это будет внутри?.
Зеленая полоска ШЕЙДЕРЫ говорит о том что игра понимает (или же разделяет) наличие какой либо компиляции или же загрузки этих самых шейдеров.
Так же игра компилирует или загружает их “налету
Уже двух этих фактов достаточно чтобы создать тот функционал о котором я думаю.
Нажимая на кнопку "Принудительной компиляции" игра прячет весь визуальный шум под некий экран загрузки с одной кнопкой отмены.
За этим экраном персонаж появлялся (Или загружаются на карту) туда где собраны объекты (или определенные группы объектов) требующих “шейдинга”.
Когда игра понимает что полоска “Шейдеры” больше не загружена герой переходит на следующий такой уровень. И так до полной загрузки.

Почему это безопасно? Так как все загружает “на лету” Нажатие кнопки “Отмена” или принудительный выход из игры не приведет к какой либо критической ошибке.

В итоге мы получим функцию которая за несколько часов (и ее можно будет безопасно прервать в любой момент) сможет загрузить или же скомпилировать большинство шейдеров.
Что приведет к ->
1. Быстрой загрузке на локацию.
2. Быстрой загрузке в хайдауты других игроков.
3. Быстрой загрузке в город с большим количеством MTX игроков (ненавижу их)
4. Отсутствии "статтеров" на картах.
5. Самое интересное на мой взгляд.
Отсутствии "статтеров" в начале новой лиги. Или после смены оборудования. Или после очистки диска. Или... Что может быть особенно критично.
Большое количество новых монстров или текстур может приводить к неприятным зависаниям или уменьшению частоты кадров. А мы все хотим знакомиться с новой лигой в комфортных условиях верно?

"
Таким образом я прихожу к выводу что подобная функция может иметь место.
Вопрос только в том на сколько это может быть сложно?
Будет ли это работать вообще?
И на первый взгляд подобное не может быть чрезвычайно сложным.
Но я могу быть не прав. И поэтому хочу услышать по возможности развернутый ответ если это невозможно или сложно то почему?


Спасибо за уделенное время. (кто бы ты ни был отнеси это разработчику графики пожалуйста)

DeD1_1#7018 님이 2026. 2. 10. 오전 4:18:22에 마지막으로 편집
마지막 추천 2026. 2. 10. 오전 10:57:46
На сколько помню в интервью https://youtu.be/7C3DAzORVns упоминалось, что им самим не нравится стрим текстур в прямом эфире и прочие загрузки текстур, которые кажутся или выглядят, как рудимент и они ищут новый способ улучшить игру.

Тайминг в видео не скажу, давно их слушал.
ЧС для форума:
https://ru.pathofexile.com/forum/view-thread/3216210
"
aaimwhite#5408 님이 작성:
На сколько помню в интервью https://youtu.be/7C3DAzORVns упоминалось, что им самим не нравится стрим текстур в прямом эфире и прочие загрузки текстур, которые кажутся или выглядят, как рудимент и они ищут новый способ улучшить игру.

Тайминг в видео не скажу, давно их слушал.


1:16:51

https://youtu.be/7C3DAzORVns?t=4611

Если вы об этом моменте то это "догруз" текстур.

Тема которую я поднял это компиляция/загрузка шейдеров для вашего устройства.
Т.е. конфигурации вашей конкретной системы и драйверов к ней.
Новый драйвер? "шейдим". Новая железка в системе? "шейдим". Поменял конфигурацию системы или очистил диск? "шейдим". И все это приводит к нагрузке на процессор.
Кадр был 20mc стал 40mc. Было 1000/20 = 50FPS Из за шейдеров стало 1000/50 = 25FPS

Спайки же это кратковременный эффект загрузки контента с того же SSD.
Мне нужен кусок локации или текстура этого парня. Но она не загрузилась во время "общей" загрузки локации. Или по какой то другой причине. И что бы получить этот кусок текстуры нужно лезть на диск что есть долго и мы получаем кратковременное зависание.

(я могу быть не прав или не точен если это так поправьте меня даже если это потребует сложных терминов и/или формулировок)
DeD1_1#7018 님이 2026. 2. 10. 오전 8:48:16에 마지막으로 편집
Крайне сомнительно, что одно идёт отдельно от другого.
ЧС для форума:
https://ru.pathofexile.com/forum/view-thread/3216210
Я очень сомневаюсь что проблема именно в компиляции шейдеров. Там какие то более глубокие проблемы и это прекрасно видно, если очистить фулл шейдеры вообще и запустить игру. Она будет нормально без зависонов работать на слабом проце, хотя некоторые модельки будут не прогружены в первые минут 10-15, но спустя несколько часов/ дней игра может начать подлагивать, хотя файлы шейдеров уже давно скомпилированы.
"
Maidz32#3165 님이 작성:
Я очень сомневаюсь что проблема именно в компиляции шейдеров. Там какие то более глубокие проблемы и это прекрасно видно, если очистить фулл шейдеры вообще и запустить игру. Она будет нормально без зависонов работать на слабом проце, хотя некоторые модельки будут не прогружены в первые минут 10-15, но спустя несколько часов/ дней игра может начать подлагивать, хотя файлы шейдеров уже давно скомпилированы.


Контекст "О воспроизведении"

Мне стоит так же явно указать некоторый контекст.
Я использую рендер API Vulkan и Steam клиент игры.
Всего я нашел две основные точки хранения скомпилированных или же загруженных шейдеров.



1. C:\C_MyProgram\Steam\steamapps\common\Path of Exile \Папка_с_Шейдерами_вашего_отрисовщика

2. C:\C_MyProgram\Steam\steamapps\shadercache\238960\fozpipelinesv6

Теперь немного о профилировании. F1 показывает некоторые графики если нажать ее несколько раз. Вот пример ->


Мы бы хотели получать больше но и этой информации будет достаточно.

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

Сразу после того как игра запуститься жмите F1 до появления всех графиков как в примере выше.

Если их нет вы можете зайти в настройки -> графика -> Пункт "Графики производительности"
Пример настройки ->



Вы в главном меню и видите все графики -> Подключаемся к серверу -> Заходим с свое убежище.
Если вы видите следующую картину ->



Шейдеры загружаются/компилируются заново. Этот процесс требует мощностей вашего процессора.
Нагрузка может быть как небольшой (-10%) так и довольной серьезной (-80%) производительности процессора.
Проблема не в шейдерах. Это неизбежное создания/упаковка их наилучшим образом для вашей системы.
Этот процесс не проблема но не в том случае когда на вас бежит сотня другая монстров взрывается множество уникальных эффектов или показывается много нового контента который вы раньше не видели а значит и не загружали/не компилировали.
Что приводит к жесточайшему(серьезному) падению кадров прямо во время боя.
Этого можно избежать компилируя их отдельной функцией перед началом игры.
"
Шейдеры загружаются/компилируются заново. Этот процесс требует мощностей вашего процессора.
Нагрузка может быть как небольшой (-10%) так и довольной серьезной (-80%) производительности процессора.
Проблема не в шейдерах. Это неизбежное создания/упаковка их наилучшим образом для вашей системы.
Этот процесс не проблема но не в том случае когда на вас бежит сотня другая монстров взрывается множество уникальных эффектов или показывается много нового контента который вы раньше не видели а значит и не загружали/не компилировали.
Что приводит к жесточайшему(серьезному) падению кадров прямо во время боя.
Этого можно избежать компилируя их отдельной функцией перед началом игры.

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

Уже позже после того, как в папках шейдеров присутствуют огромные файлы в несколько гигов, фпс временами может падать. Если он падает, то всегда при условии, что полоска шейдеров загружена. Но при этом файлы шейдеров уже давно не пишутся. Ты это можешь посмотреть по дате изменения файлов(они могут быть последний раз изменены вчера), а значит проблема ваще не такая, как ты себе это представляешь. То есть непонятно, что делает игра при загруженном графике шейдеров, потому что они не компилируются в дефолтные папки. При этом от патча к патчу проблема падения фпс может как пропадать полностью так и возвращаться опять.
Ну еще дополню что я про пое2 говорил, не заметив что это про пое1. в пое1 в принципе никогда проблем с падениями фпс из за шейдеров не было. Там большинство просадок из за мобов с щитками/куполами.
Maidz32#3165 님이 2026. 2. 10. 오전 7:52:28에 마지막으로 편집
"
Maidz32#3165 님이 작성:
То есть непонятно, что делает игра при загруженном графике шейдеров, потому что они не компилируются в дефолтные папки. При этом от патча к патчу проблема падения фпс может как пропадать полностью так и возвращаться опять.


UPD не актуально человек имел введу пое2

Процитирую себя на берегу.

Старт новой лиги?
Смена оборудования?
Смена драйвера?
Появления новых MTX?

Скиллы? Монстры? И любой новый контент.
Этот тред изначально создается с целью привлечь внимание к добавлению "новой функции" или же "Новой возможности".
Компилировать все тогда - когда это нужно. Предложенным выше способом.

Вы говорите о совершенно другом явлении. Либо связанным с вашим оборудованием-драйверами. Либо с чем то иным.
Весь этот тред рассказывает именно о компиляции/загрузке именно "шейдеров" и о попытках придумать простое решения для разработчика графики.
DeD1_1#7018 님이 2026. 2. 10. 오전 8:01:23에 마지막으로 편집
Это не особенности моего железа. Загруженная полоска шейдеров это "проблема" большинства. Просто они думают, что игра пишет шейдеры, но на самом деле они уже давным давно написаны, и что делает игра с шейдерами в это время непонятно.

게시판 글 신고

신고 계정:

신고 유형

추가 정보