Как долго идет компиляция шейдеров в The Last of Us?

Компиляция шейдеров в The Last of Us

На ПК с процессором Ryzen 5 3600 исходная компиляция занимала 41 минуту.

После установки патча 1.0.5 эта операция сократилась до 25 минут.

Как ускорить компиляцию шейдеров TLOU?

Исправление ошибки компиляции шейдеров TLOU

Последние исследования геймеров показали, что замедленная компиляция шейдеров в игре The Last of Us Part 1 связана с некорректным функционированием библиотеки декомпрессии Oodle 9.2.6. Разработчики игры признали данную проблему и выпустили обновление, устраняющее ее.

Чтобы решить эту проблему, пользователям необходимо вручную обновить библиотеку Oodle до версии 9.2.5. Это существенно ускоряет компиляцию шейдеров и повышает частоту кадров.

Инструкция по замене библиотеки:

  • Загрузите файл Oodle9_2_5.dll с официального сайта.
  • Перейдите в папку с установленной игрой:
  • Steam: SteamsteamappscommonThe Last of Us Part I
  • Epic Games: Epic GamesTheLastofUsPartI
  • Скопируйте скачанный файл в эту папку и перезапишите существующий файл Oodle9_2_6.dll.

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

Стоит ли ждать сборки шейдеров?

Да, НЕ пытайтесь играть, пока компилируются шейдеры . Обратите внимание, что для многих людей, когда он приблизится к 60%, процесс пойдет намного быстрее. Сколько свободного места у вас на загрузочном диске? Если он действительно ограничен, попробуйте освободить немного.

Почему в The Last of Us создаются шейдеры?

Проще говоря, сообщение о создании шейдеров The Last of Us означает , что игра готовится обрабатывать тени, освещение и текстуры . Без шейдеров порт не сможет добавлять причудливые эффекты к своим 3D-моделям и окружению, что в конечном итоге приведет к визуальному беспорядку.

Сколько времени занимает компиляция шейдеров?

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

Шейдеры — это программы, выполняемые на графическом процессоре (GPU) для обработки графической информации и создания изображений. Обычно они компилируются при первом запуске игры.

  • Время компиляции зависит:
  • от количества и сложности шейдеров
  • от производительности GPU
  • Влияние на игру:
  • длительная задержка при первом запуске
  • увеличение времени загрузки после обновления или модификации шейдеров
  • Решения:
  • предкомпиляция шейдеров: компиляция шейдеров заранее перед выпуском игры
  • инкрементная компиляция: компиляция только измененных шейдеров при обновлении/модификации

Как отключить кэш шейдеров?

Для отключения кеша шейдеров Steam выполните следующие действия:

  • Откройте Настройки Steam.
  • Перейдите в раздел Игры.
  • Выберите Кэш шейдеров.
  • Установите значение Выкл.
  • Дополнительная информация: * Кэш шейдеров оптимизирует производительность за счет предварительного компилирования шейдеров, используемых в играх. * Отключение кеша шейдеров может быть полезно при устранении проблем со стабильностью или производительностью в некоторых играх. * Повторное включение кеша шейдеров может улучшить производительность в играх, где шейдеры используются интенсивно. * Если вы не уверены, включить или отключить кэш шейдеров, оставьте его включенным для оптимальной производительности.

Как работает компиляция шейдеров?

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

Существует три основных способа компиляции шейдеров в OpenGL:

  • Компиляция с использованием компилятора GLSL (GLSL Compiler): этот метод использует внешний компилятор для преобразования исходного кода шейдера в промежуточное представление (IR), которое затем преобразуется в машинные инструкции при помощи специальных драйверов.
  • Компиляция с помощью встроенного компилятора шейдеров: в этом случае компиляция происходит внутри драйверов OpenGL.
  • Компиляция методом интроспекции (Introspection): при таком подходе исходный код шейдера не компилируется напрямую, а анализируется для извлечения информации о его структуре и возможностях.

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

Почему компиляция шейдеров занимает так много времени?

Компиляция шейдеров является вычислительно интенсивным процессом, требующим значительных ресурсов процессора и памяти.

На время компиляции влияет несколько факторов:

  • Сложность шейдеров: Чем сложнее шейдеры, тем больше времени требуется для их компиляции.
  • Оптимизации компилятора: Более агрессивные оптимизации могут увеличивать время компиляции, но в конечном итоге приводят к более эффективному коду.
  • Внешние воздействия: В некоторых случаях антивирусное программное обеспечение может прерывать процесс компиляции, замедляя его.

Для минимизации времени компиляции шейдеров можно предпринять следующие шаги:

  • Использовать менее сложные шейдеры при необходимости.
  • Отключить агрессивные оптимизации компилятора для ускорения компиляции во время разработки.
  • Исключать каталоги компиляции шейдеров из проверок антивирусного программного обеспечения.

Что дает оптимизация шейдеров?

Оптимизация шейдеров

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

Оптимизация шейдеров позволяет:

  • Снизить нагрузку на графический процессор, освобождая ресурсы для других задач.
  • Улучшить визуальное качество, добавляя реалистичные эффекты освещения и текстурирования.
  • Повысить производительность игры, позволяя использовать на более высоких разрешениях и настройках графики.

Основные техники оптимизации шейдеров включают:

  • Профилирование для идентификации узких мест в коде шейдера.
  • Рефакторинг для удаления избыточного или неиспользуемого кода.
  • Разбиение на подпрограммы для повышения гибкости и эффективности.
  • Использование высокоуровневых языков шейдеров, таких как HLSL или GLSL, для более удобного написания и отладки.

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

Last of Us создавала шейдеры один раз?

В процессе первой загрузки Last of Us идет однократная компиляция шейдеров, что может занять более 40 минут (у некоторых пользователей дольше двух часов).

  • Игру можно запускать во время компиляции с временным снижением графики.
  • По завершении компиляции графика будет полностью оптимизирована.

Должен ли я отключить кеш шейдеров?

Кэш шейдеров является важной функцией, которую рекомендуется оставлять включенной.

Преимущества кэша шейдеров:

  • Устранение микролагов в играх после первого запуска.

Исключения:

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

Рекомендации:

  • Оставляйте кэш шейдеров включенным при игре.
  • При возникновении проблем с конкретной игрой, проверьте профиль игры в панели управления драйвера видеокарты. Возможно, кэш шейдеров отключен автоматически для этой игры.

Что такое размер кэша шейдеров?

Размер кэша шейдеров (добавлено в версии 495) управляет максимальным объемом дискового пространства, которое драйвер может использовать для хранения компиляций шейдеров.

Почему код должен компилировать шейдеры?

Для выполнения шейдеров графическим процессором (GPU) они должны быть преобразованы из человекопонятного кода в двоичный формат. Этот процесс преобразования известен как компиляция.

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

  • Преимущества компиляции:
  • Улучшенная производительность: двоичный код выполняется быстрее, чем исходный код.
  • Аппаратное ускорение: GPU использует аппаратные ресурсы для обработки шейдеров.
  • Оптимизация: компилятор оптимизирует код шейдера для конкретного GPU.
  • Этапы компиляции шейдера:
  • Парсинг: чтение и анализ исходного кода шейдера.
  • Трансляция: преобразование исходного кода в промежуточное представление.
  • Генерация кода: создание двоичного кода для целевого GPU.

Важно: шейдеры должны быть скомпилированы для каждой используемой платформы или устройства, поскольку разные GPU имеют разные архитектуры и наборы инструкций.

Как мне избавиться от компиляции шейдеров во время Холодной войны?

Шаг 1. Запустите Black Ops Cold War и перейдите в НАСТРОЙКИ. Шаг 2. Перейдите на вкладку «ГРАФИКА» и выберите параметр «Перезапустить компиляцию шейдеров» в нижней части экрана. Дождитесь завершения переустановки и запустите игру.

Scroll to Top