Настройка кэширования шейдеров в видеокартах NVidia

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

Что нужно знать о кэшировании шейдеров в видеокартах NVidia

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

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

Имеется такая функция и у видеокарт NVidia, при этом кэширование шейдеров предполагает запись нужных данных на диск. Если он быстрый, то кэширование помогает увеличить время загрузки кадра и улучшить плавность анимации. С другой стороны, если компьютер слабый или диск медленный, ShaderCache не даст ощутимого результата. Так нужно ли его включить или отключить? Давайте разбираться.

Включение/отключение кэширования шейдеров NVidia

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

На большинстве современных видеочипов эта функция включена по умолчанию.

А теперь рассмотрим, от чего зависит эффективность использования ShaderCache.

Самый важный параметр – это скорость чтения данных из кэша, то есть насколько быстрый у вас диск. Если это SSD, то здесь эффект будет заметным, ведь скорость чтения/записи при работе с твердотельными накопителями намного выше, чем у классических винчестеров. Поэтому при наличии HDD диска эффективность кэширования шейдеров будет не такой высокой или вообще нулевой. Другими словами, считывание кэша с жёсткого диска займёт примерно столько же времени, сколько освобождается в результате разгрузки видеокарты от просчёта очередного Shader.

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

И ещё один нюанс, касающийся использования SSD дисков. Как известно, для таких носителей критическим является такой параметр, как количество циклов записи на единицу памяти. На сегодня оно существенно меньше, чем у жёстких дисков, и рекомендуется их использование в щадящем режиме – например, в качестве системного диска. В этой связи у многих пользователей возникают опасения, что ShaderCache негативным образом скажется на ресурсе твердотельного диска. На самом деле опасения беспочвенны: запись кэша производится не так часто, как его считывание.

Отметим, что те геймеры, которые используют клиент Steam, могут не переживать по поводу того, используется ShaderCache в настройках видеокарты или нет, поскольку здесь поддержка осуществлена на уровне библиотек Vulkan/OpenGL. И если игра использует эти платформы, кэширование шейдеров позволит не грузить процессор, поскольку каждый раз компилировать шейдеры не нужно – они будут подгружаться из оперативной памяти.

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

  • открываем Панель управления NVidia;

  • переходим во вкладку «Управление параметрами 3D»;

  • находим опцию «Кэширование шейдеров» и устанавливаем ползунок переключателя в положение «выкл».

В результате вы освободите на диске пространство в размере порядка нескольких гигабайтов.

Имеется возможность отключения функции для отдельных приложений через «Программные настройки». Если выбрана опция «Глобальные параметры», то отмена будет касаться всех программных продуктов, использующих технологию шейдеров.

Ещё одна возможность отключить кэширование спрятана в настройках Steam: в разделе «Настройки» имеется вкладка «Кэш шейдеров» с переключателем, который можно выключать или включать. При включении опции может отмечаться небольшой рост нагрузки на сеть. Функция работает только при наличии установленных драйверов видеокарты NVidia.

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

Источник

Понравилась статья? Поделиться с друзьями: