Что такое кэширование шейдеров
Содержание:
При погружении в мир компьютерных игр и всего того, что с ними связано, приходится сталкиваться не только с геймерским сленгом, но и с профессиональной терминологией. Последняя часто встречается в настройках игр, игровых платформ, а также драйверов, в частности, в панели управления NVidia. Каждый, кто заходил в настройки видеокарт от этого производителя, наверняка встречал в них множество разных опций с непонятными названиями. Например, кэширование шейдеров.
↑ Что такое кэширование шейдеров
{banner_google1}
Кстати, опция эта часто используется геймерами, которые то включают, то отключают её, стремясь таким образом повысить производительность в играх, но получая при этом разные результаты. Кому-то помогает отключение кэширования этих самых шейдеров, кому-то наоборот, уменьшить подвисания в игре помогает её включение. Почему так, мы попробуем объяснить ниже, но сначала давайте разберёмся с терминологией.
↑ Кэширование
Кэширование — это процедура записи каких-либо данных, чаще всего временных и часто используемых, на диск или другой тип памяти для обеспечения к ним более быстрого доступа. Наиболее простым примером кэширования является сохранение браузерами веб-элементов сайтов на жёсткий диск, благодаря чему содержимое этих страниц отображается быстрее, чем в случае повторной их загрузки с сервера. Другим примером кэширования является запись хранящихся в оперативной памяти данных в файл подкачки.
↑ Шейдер
{banner_google1}
Шейдером именуется программа, вернее, программный код, отвечающий за отображение визуальных эффектов в процессе рендеринга видеокартой кадров трёхмерной графики. Таковыми эффектами могут быть сдвиг поверхности, отражение и преломление света, затемнение и так далее, одним словом всё то, что придаёт объекту или изображению окончательный вид. Раньше, когда шейдеров не было, для отображения визуальных эффектов программистам приходилось использовать вшитые в видеокарты алгоритмы, что ограничивало возможности реализации продвинутых эффектов.
↑ Кэширование шейдеров
Как и всякий программный код, шейдеры компилируются центральным процессором, который, выполнив свою часть работы, передаёт шейдеры в обработку графическому процессору видеокарты. Если кэширование шейдеров включено, то центральный процессор попутно сохраняет скомпилированный код шейдера на диск. Если шейдер понадобится для отрисовки того или иного эффекта, видеокарта просто возьмёт его с диска, благодаря чему ресурсы процессора, которые в ином случае были бы потрачены на повторную компиляцию шейдера, могут быть направлены на решение других задач.
↑ Почему кэширование шейдеров не всегда эффективно
Активная функция кэширования шейдеров должна увеличивать плавность анимации и устранять фризы, но так бывает не всегда. Иногда бывает всё как раз наоборот. Почему? Потому что эффективность кэширования напрямую зависит от скорости чтения кэша. Если у вас медленный диск HDD, то пользы от включённой функции кэширования шейдеров будет немного, включать её есть смысл только на быстрых SSD-дисках. С другой стороны, нельзя забывать также и о процессоре. Отключение кэширования на ПК со слабым CPU тоже может привести к снижению производительности, но на этот раз по причине затрат ресурсов на постоянную компиляцию шейдеров.