LINUX.ORG.RU

История изменений

Исправление altwazar, (текущая версия) :

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

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

Есть несколько разных способов с этим бороться, но выходит не всегда удачно (dx12 игры часто под виндой имеют проблему с шейдерами), либо способ перестает работать при трансляции (dx11 -> vulkan). Самый тупой способ - собрать во время запуска игры при первом запуске и обновлении драйвера, но это может занять 5-10 минут.

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

Компиляцию шейдеров в процессе игры постоянно улучшают, но полностью это проблему не решает. Раньше же это было полностью неиграбельно для большинства игр. Если в сетевом шутере можно собрать почти все шейдеры за несколько чесов каток, то в играх с прогрессом (типа borderlads 2, Path of exile) фризы были от начала и до конца игры.

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

Исходная версия altwazar, :

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

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

Есть несколько разных способов с этим бороться, но выходит не всегда удачно (dx12 игры часто под виндой имеют проблему с шейдерами), либо способ перестает работать при трансляции (dx11 -> vulkan). Самый тупой способ - собрать во время запуска игры при первом запуске и обновлении драйвера, но это может занять 5-10 минут.

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

Компиляцию шейдеров в процессе игры постоянно улучшают, но полностью это проблему не решает. Раньше же это было полностью неиграбельно для большинства игр. Если в сетевом шутере можно собрать почти все шейдеры за несколько чесов каток, то в играх с прогрессом (типа borderlads 2, Path of exile) фризы были от начала и до конца игры.

Поэтому игры лучше брать в стиме.