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

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

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

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

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

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

Применение кэширования шейдеров

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

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

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

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

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

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

Функция ShaderCache

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

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

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

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

  • открываем Панель управления NVidia;
    Пункт «Панель управления NVIDIA»
  • переходим во вкладку «Управление параметрами 3D»;
    Пункт «Управление параметрами 3D»
  • находим опцию «Кэширование шейдеров» и устанавливаем ползунок переключателя в положение «выкл».
    Выключение кэширования шейдеров

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

Подтверждение выключения кэширования шейдеров

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

Отключение кэширования через NVidia Inspector

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

Переход к настройкам в Steam

Выключение кэширования шейдеров в Steam

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

  • ВКонтакте
  • обычная форма
  • Юрий:

    Имеет смысл хранить кэш на виртуальном диске. Конечно, если с оперативкой нет проблем. Я тестировал эту функцию с разными RAMdisk и в итоге пришёл к такому выводу. Быстрее всего кэширование работает, если под него отведен 1 ГБ RAMdisk, отформатированного в FAT32. Если верить тестам, то выигрыш по сравнению с SSD диском – почти десятикратный. При прорисовке новой области задержки практически отсутствуют, по крайней мере, vsync продолжает работать на 30 кадрах. Из четырёх протестированных мной эмуляторов RAMdisk самой быстрой оказалась Primo RAMdisk Ultimate, но даже с самым медленным виртуальным диском разница в скорости была невелика.

    Саша:

    А как это настроить? Для например Hell Let Loose ?

    Константин:

    Кстати, использование RAMdisk, кроме ускорения загрузки шейдеров, даёт и увеличение fps, по крайней мере, в некоторых случаях. Проверено многократным прогоном через бенчмарки. Так что с утверждениями, что не влияет на fps, нужно быть поаккуратнее.

    Константин:

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

    Андрей:

    Включение кэширование шейдеров делает загрузки локаций Metro Exodus, при переходе или загрузки из сэйва, очень долгими. Если ОЗУ достаточно, то зачем кэшировать шейдеры на более медленный SSD NVMe, если ОЗУ намного шустрей? А вообще неизвестно как отрабатывает и где хранит/не хранит видеокарта шейдеры, если опция кэширования шейдеров отключена. Если всё же в оперативке, то на компьютерах с достаточным количеством ОЗУ эту опцию лучше выключить. Если же при отключённой опции шейдеры загружаются только по факту нужности, то данную опцию лучше включать в любом случае.
    Нужно сперва определиться с механизмом кэширования, а потом только что-то рекомендовать.

    Вячеслав:

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

    Серёга:

    Яндекс браузер виснет в браузерной онлайн игре, она через 10 минут начинает тормозить. Оперативка не нагружена, и ее 16 гб, диск тоже, видео карта 1050 ti , процессор 8 ядер амд. и гугл тоже, глючит. Это сами браузеры плохие ? или в чем дело ?

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

    Вот вам и кэширование. Дошли до 8 ядерных процессоров, как с одного ядра все начало виснуть, так и продолжается. Дигродация виндовс. Хоть какое железо им дай, программа все равно накосячит. Где одно ядро процессора, и где 8. Вообще не чего виснуть не должно. С видео карты в 256 мегабайт дошли до видео карт в 4, 6, 8, гб и все равно у нас все виснет. Вот что я лично вижу.

    Максим:

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

    Виктор:

    Виртуальный диск – это хорошо, но у многих в кэше уже хранится порядка 5-7 тысяч шейдеров объёмом под 3 гига, которые на 1 гиг виртуалки никак не поместятся. Плюс у большинства RAMdisk нет резервного копирования. Одно неудачное обновление винды – и кэша нет…

    Оставить комментарий

сети
программы
Smart TV
ос