vrs что это в играх
Что такое VRS и как он влияет на производительность в играх — главное из анализа Digital Foundry
Технология оптимизации, у которой большое будущее.
Variable rate shading (VRS) — технология, призванная повысить производительность путём оптимизация шейдинга. В обычных условиях происходит один вызов шейдинга для каждого пикселя в кадре. Соответственно, с повышением разрешения изображения системе требуется больше мощностей.
Однако на экране часто присутствует большое количество идентичных пикселей — примером тому может служит, например, однотонное небо на горизонте. В таких случаях ресурсы системы расходуются нерационально, ведь при рендере всё равно обрабатывается каждый пиксель отдельно. VRS позволяет группировать одинаковые пиксели в кадре и вызывать шейдинг сразу для целых групп.
В Digital Foundry рассказали, как работает эта технология, а мы выбрали из ролика главное.
Для группировки пикселей VRS использует цвет и яркость пикселей, а также их скорость, которая высчитывается с помощью векторов движения.
Сегодня VRS можно увидеть, например, в Wolfenstein: Youngblood. В Digital Foundry не смогли заметить особой разницы в качестве изображения между выключенным и включённым VRS, но во втором случае прирост в производительности составил порядка 10%.
В Gears: Tactics включение VRS может дать от 13% до 30% прироста FPS в зависимости от настроек графики.
Впрочем, в Gears: Tactics заметно и ухудшение изображения с включённым VRS. Это связано с тем, игре используется более ограниченная и менее гибкая первая версия VRS, которая требует ручной работы и группирует пиксели не по цвету, а по объектам и их расположению в кадре.
Кроме того, VRS в Gears: Tactics в его текущем состоянии затрагивает и элементы интерфейса, чего происходить не должно.
При использовании VRS разработчикам приходится использовать фильтры, чтобы изображение не выглядело «пикселизованным».
В движении недостатки технологии практически незаметны. Это можно увидеть в кат-сценах Gears: Tactics, где камера постоянно перемещается, а не находится в одной позиции, как во время самой игры.
Выжимаем из Gears Tactics максимальную производительность с минимальными артефактами при помощи VRS
Gears Tactics — динамичная пошаговая стратегия во вселенной одной из самых известных игровых франшиз — Gears of War. Кроме того, это первая игра, поддерживающая одну из основных функций DirectX 12 Ultimate — Variable Rate Shading (VRS).
VRS позволяет Gears Tactics добиться значительного прироста производительности — до 18,9%! — на широком спектре оборудования без заметной потери качества изображения.
Одна из основных целей при разработке Gears Tactics заключалась в том, чтобы охватить более широкую аудиторию ПК за счет снижения минимальных системных требований. Для этого было необходимо найти новые решения для повышения производительности, которые не требовали бы существенного снижения качества графики. Одним из таких решений стал VRS.
В этой статье мы подробно рассмотрим процесс настройки VRS для достижения оптимального баланса между качеством и производительностью. В частности, на каких проходах рендеринга его задействовать и с какими параметрами.
Поскольку главной целью было включить в реализацию самый широкий спектр оборудования, речь пойдет только о первом уровне поддержки VRS (Tier 1), что позволяет устанавливать shading rate для каждого объекта. Для получения дополнительной информации о VRS можете почитать этот пост.
В случае Gears Tactics VRS не распространяется на уровень поддержки выше первого, поэтому нужно было определить, на каких проходах рендеринга можно его задействовать (оговоримся, что Gears Tactics создавалась на Unreal Engine 4), а также сформулировать критерии, когда следует уменьшить shading rate — размер области пикселей, к которой применяется единовременный рендеринг. Чем он выше (самый высокий — 1×1), тем выше точность прорисовки и, соответственно, выше нагрузка на GPU.
Как оказалось, выгоду из VRS можно извлечь на любом этапе рендеринга, включая некоторые полноэкранные отрисовки.
Оценка рендеринг-пайплайна
Поначалу казалось, что базовый проход рендеринга и проход по полупрозрачности (translucency) должны представлять собой наибольший потенциал для оптимизации по сравнению с остальными. Поэтому VRS включался для всех вызовов отрисовки в базовом проходе и в проходе по translucency, но на последнем возникали слишком серьезные артефакты.
Значит, следующим шагом следовало оценить, какие проходы наиболее перспективны для получения максимальной выгоды от VRS, а затем протестировать shading rate на этих проходах и исключить те, которые оставляли артефакты. Так, проходы, использующие точную информацию о пикселях, оказались одной из основных причин этих артефактов.
Чтобы выяснить, какие проходы покажут себя наиболее эффективными, понадобилось включить VRS на всех из них, а затем сузить в PIX их число до тех, которые показали себя лучше других.
Следующие проходы показали улучшение производительности с включенным VRS, но при этом имели слишком много артефактов для того, чтобы их стоило использовать:
После исключения этих проходов началась работа над корректировкой shading rate на основе других факторов. В первую очередь были исключены динамические объекты и объекты с маской прозрачности.
Динамические объекты отбрасывают полностью динамическую тень. От этого с VRS они часто теряют важные детали и становятся более заметными по всей сцене, а также во время движения. Применение VRS к маске прозрачности тоже нередко приводило к большой потере детализации. И, поскольку объекты со смещением глубины пикселя, как оказалось, также отображались неправильно, они тоже были исключены.
VRS использовался на наборе маскированных объектов, что привело к недопустимой потере детализации
Динамические техники
Итак, мы составили хороший набор проходов рендеринга, к которым можно применить VRS. Однако повсеместное применение самого малого shading rate (4×4 или 2×2 в зависимости от аппаратной поддержки) на этих проходах приведет к существенной потере качества. Поэтому следующим шагом явилось исследование динамических методов, которые могли бы изменить shading rate в зависимости от конкретного прохода. В результате их сформировалось три. Каждый из них использовался в ключевых проходах непосредственно перед прорисовкой сетки.
Вот эти методы: определение размера объекта, маскировка глубины резкости и маскировка «Туман войны».
Определение размера объекта
В этом методе VRS активно применяется на любой сетке, чрезвычайно малой в сравнении с игровым пространством. В основе его лежит быстрая проверка условия, ниже ли заданного порога значение размера отдельного полигона в сетке. Если это так, shading rate масштабируется пропорционально этому размеру.
Маскировка глубины резкости
Для большинства графических процессоров глубина резкости в Gears Tactics по умолчанию выключена, но включается во время кат-сцен. Этот метод определяет степень размытия сетки после применения глубины резкости в процессе постобработки. И, поскольку на этом этапе детали намеренно устраняются, на всех предыдущих ключевых проходах можно выставить небольшой shading rate.
Сетки, выделенные красным, из-за глубины резкости имеют самый грубый размер пикселя
Маскировка «Туман войны»
Gears Tactics использует «туман войны» для скрытия части поля битвы. Также с его помощью можно замаскировать и пониженный shading rate. Эта техника определяет, как далеко конкретная полигональная сетка скрыта «туманом войны», и, отталкиваясь от этого, пропорционально снижает shading rate.
Интенсивность VRS растет пропорционально интенсивности «тумана войны»
Соотношение качества и производительности
Оказалось, при помощи совокупности описанных выше методов можно получить более 30% прироста производительности за счет значительного снижения shading rate. Правда, потеря качества при этом будет более заметной, чем хотелось бы. Поэтому следующим шагом явилась ручная настройка shading rate для каждого прохода по нескольким биомам и оценка прироста производительности и качества изображения после каждого изменения.
В результате VRS получил два уровня. Конфигурация «On» оказывает наименьшее влияние на качество изображения при условии, если отключить VRS для некоторых проходов рендеринга и ограничить снижение shading rate. В то же время настройка «Performance» приведет к небольшим компромиссам в качестве картинки в пользу увеличения производительности с использованием более низких shading rate.
Здесь прослеживается еще одно преимущество использования shading rate, для которых нужны дополнительные мощности. Размеры пикселей более 2 требуют дополнительной поддержки shading rate со стороны аппаратного обеспечения, поэтому любой проход, использующий shading rate размером 2×4, 4×2 или 4×4, ограничен уровнем «Performance».
Результаты тестов
Тестирование проводилось на Intel Gen 11 и Intel Xe, а также на NVIDIA Turing. На всех поддерживаемых средствах наблюдается схожий прирост производительности.
Тестируемое оборудование
3.5GHz
Память: 98304 MB RAM
Видеокарта: NVIDIA GeForce RTX 2080 SUPER
Все тесты проводились при настройках игры Ultra с разрешением 4K
Все техники при настройках «VRS On»
Включение всех техник при «VRS Performance»
Расширение VRS
Можно получить дополнительные преимущества, расширив описанные здесь методы применения VRS.
Дальнейшие методы маскирования
Дополнительные методы маскирования могут повысить эффективность VRS или уменьшить количество артефактов. Эти методы могут варьироваться в зависимости от случаев, когда области затенены или размыты во время игры:
Динамический VRS
Как и в случае с динамическим масштабированием разрешения, возможным улучшением здесь является масштабирование VRS в зависимости от частоты кадров с целью минимизации времени, необходимого для его использования. Это отдельная система слежения, которая может потребовать регулировки на разных частотах во избежание усиления артефактов.
Динамическое масштабирование разрешения (DRS)
Gears Tactics использует для оптимизации и VRS, и DRS, но эти функции могут иметь не очень хорошую совместимость. Это связано с тем, что, когда DRS меняет масштаб разрешения, меняются и артефакты VRS. Это приводит к тому, что игрок либо узнает и об артефактах VRS, и об изменении разрешения разом, либо и то, и другое остается незамеченным. Одним из способов одновременного использования обеих функций может стать мониторинг коэффициента изменения DRS и отключение использования VRS до тех пор, пока он не стабилизируется.
3DMark уже позволяет тестировать эффективность Variable-Rate Shading
В июле Futuremark сообщила о разработке нового функционального теста 3DMark, призванного тестировать эффективность технологии Variable-Rate Shading. Функциональные тесты 3DMark призваны показать влияние конкретных технологий, методов и возможностей в специализированных задачах. Таковыми, например, выступают тест для оценки сглаживания NVIDIA DLSS, 3DMark API Overhead для оценки эффективности низкоуровневых API или 3DMark PCI Express 4.0 для демонстрации преимущества нового интерфейса.
Оптимизация и повышение производительности в играх — ключевая задача. С этой целью Microsoft на мартовском мероприятии GDC 2019 представила Variable-Rate Shading, которая стала частью API DirectX 12. Она аналогична технологии NVIDIA Adaptive Shading и призвана снизить нагрузку при просчёте периферийных объектов и зон (например, однородного моря или тумана) с помощью снижения точности проводимых вычислений.
DMark VRS позволяет сравнить разницу в производительности и качестве изображения при использовании Tier 1 Variable-Rate Shading. Для вычисления цвета каждого пикселя на экране вызываются шейдеры. Показатель Shading rate указывает разрешение, в котором эти шейдеры просчитываются (оно не всегда равно разрешению экрана). Чем выше Shading rate, тем выше точность и нагрузка на ГП, и наоборот. Обычно оно для всей картинки одинаково, так что все пиксели кадра рассчитываются с одинаковым качеством. VRS позволяет разбивать кадр на блоки и для каждого из них указывать разные значения Shading rate: например, снижать точность для пикселей, которые находятся в глубоких тенях, вдали от камеры или на периферии, вне фокуса внимания игрока. За счёт этого можно существенно повысить частоту кадров, незначительно потеряв в визуальном качестве.
Функциональный тест 3DMark VRS работает в два прохода. В первом VRS не используется, чтобы создать базовую картинку для сравнения. А при втором прохождении уже применяется Variable-Rate Shading. Благодаря VRS операция с единичным пиксельным шейдером может быть применена к блоку пикселей: например для просчёта блока пикселей 4 × 4 одной операцией, а не 16 отдельными. В 3DMark VRS показатель Rate Shading зависит от расстояния до камеры: для самых дальних объектов включается VRS 4 × 4, 2 × 2 для геометрии на среднем расстоянии и наиболее качественный 1 × 1 — для ближайших объектов переднего плана.
Для запуска теста необходима платформа Windows 10 в версии 1903 и ускоритель с поддержкой DirectX 12, поддерживающий Tier 1 VRS и AdditionalShadingRatesSupported: например, видеокарта семейства NVIDIA Turing или встроенная графика в процессорах Intel Ice Lake. В настоящее время приобрести 3DMark Advanced Edition можно со скидкой в 75 % в Steam. Тест VRS будет частью бесплатного обновления пакета для 3DMark Advanced Edition или 3DMark Professional Edition с действующей годовой лицензией.
Видеорассказ о трассировке лучей, VRS и других технологиях AMD в The Riftbreaker
AMD в цикле видеороликов AMD Radeon RX 6000 Partner Showcase продолжает рассказывать об играх, которые получили оптимизации для RDNA 2 благодаря сотрудничеству компании с разработчиками. Мы уже видели ролики о DiRT 5, Godfall и World of Warcraft: Shadowlands, а 4-й эпизод посвящён The Riftbreaker от EXOR Studios.
Соучредитель и исполнительный директор студии Павел Лекки (Pawel Lekki) отметил, что работа с архитектурой RDNA 2 позволила разработчикам оптимизировать игру как под ПК с Radeon RX 6000, так и под новые консоли. Игра благодаря сотрудничеству с AMD получила ряд последних технологий DirectX 12 Ultimate.
Кроме того, применена модель затенения Ambient Occlusion на основе трассировки лучей. Это сложный алгоритм, который имитирует мягкие тени от глобального освещения путём имитации темноты, воспринимаемой в углах и на пересечениях полисеток, в сгибах и трещинах, где окружающий свет закрывается или блокируется. Это позволило сделать картинку более реалистичной.
Также игра поддерживает затенение с переменной точностью (Variable Rate Shading 2, VRS), которое предназначено для экономии ресурсов видеокарты и, как следствие, повышения производительности. Технология позволяет снизить нагрузку при просчёте периферийных объектов, малозначимых зон или быстродвижущихся частей сцены, сохраняя детализацию там, где это наиболее необходимо. Иногда это, судя по видеоролику, позволяет игре выдавать вдвое большее количество кадров по сравнению с режимом без VRS.
Также The Riftbreaker обзавелась поддержкой технологии Contrast Adaptive Sharpening (CAS) из набора AMD FidelityFX. Она помогает улучшить качество изображения путём достижения повышенной чёткости с минимальными артефактами, устраняя потерю деталей после применения технологии Temporal Anti-Aliasing (TAA).
The Riftbreaker выйдет в 2021 году на ПК, PlayStation 4 и Xbox One. В Steam уже есть демоверсия этого боевика со строительством, защитой базы и ролевыми элементами. Обещан русский язык в виде субтитров.
AMD запатентовала Variable Rate Shading
Одна из новых функций архитектуры Turing является поддержка Variable Rate Shading (VRS). NVIDIA реализовала VRS под собственным названием NVIDIA Adaptive Shading (NAS). Все современные видеокарты на архитектуре Turing, как GeForce RTX, так и GeForce GTX 1660 Ti, поддерживают данную технологию.
Оказывается, еще 25 мая 2017 года AMD подала патентную заявку, описывающую Variable Rate Shading. Но опубликован патент только сейчас.
Ниже приведено оригинальное описание патента на английском:
«A technique for performing rasterization and pixel shading with decoupled resolution is provided herein. The technique involves performing rasterization as normal to generate fine rasterization data and a set of (fine) quads. The quads are accumulated into a tile buffer and coarse quads are generated from the quads in the tile buffer based on a shading rate. The shading rate determines how many pixels of the fine quads are combined to generate coarse pixels of the coarse quads. Combination of fine pixels involves generating a single coarse pixel for each such fine pixel to be combined. The positions of the coarse pixels of the coarse quads are set based on the positions of the corresponding fine pixels. The coarse quads are shaded normally and the resulting shaded coarse quads are modified based on the fine rasterization data to generate shaded fine quads.»
Как видим, патент как раз описывает реализацию NVIDIA Adaptive Shading. Не совсем понятно, как данный патент скажется на реализации VRS от NVIDIA. Сама AMD многократно подчеркивала свою приверженность открытым стандартам. Можно упомянуть разработку FreeSync против G-Sync (недавно NVIDIA как раз поддержала Adaptive Sync), также AMD проявляет интерес к созданию альтернативы DLSS через Windows ML.
Что такое NVIDIA Adaptive Shading
По сути, Variable Rate Shading является технологией сжатия на уровне затенения. Мы уже знакомы с технологиями сжатия музыки (MP3), изображений (JPG), да и архитектуры GPU опираются на сжатие памяти. Как правило, в процессе шейдинга каждый пиксель просчитывается каждый раз. Но подобная точность требуется далеко не всегда. Многие участки на протяжении нескольких кадров не меняются. Здесь как раз и пригодится Variable Rate Shading.
В случае Variable Rate Shading кадр разделяется на несколько блоков. В зависимости от контента кадра и скорости, с которой объект меняется на следующих кадрах, размер блоков может меняться. Также могут использоваться разные методы Variable Rate Shading.
Начнем с Content Adaptive Shading, здесь анализируется содержимое кадра. И однородные поверхности без особых отличий 3D-модели или текстуры могут комбинироваться. Motion Adaptive Shading оценивает движения и изменения, которые происходят при переходе от одного кадра к другому. Как раз в Wolfenstein II: The new Colossus и используется Motion Adaptive Shading. Motion Adaptive Shading опирается на то, что движущиеся объекты воспринимаются человеческим глазом с меньшим разрешением, чем стационарные. Технология Motion Adaptive Shading не должна давать какие-либо существенные отличия по качеству картинки.
Мы провели несколько тестов NAS. Активация Adaptive Shading приводит к увеличению производительности от 6,8% до 9,4% в случае низкого уровня качества NAS. Если же включить режим высокого качества NAS, то прирост составит всего около 2%.
Впрочем, как раз в случае Wolfenstein II: The New Colossus и новых видеокарт RTX с производительностью никаких проблем нет. Даже GeForce RTX 2070 дает достаточную частоту кадров в разрешении 3.840 x 2.160 пикселей в режиме Extreme. В случае GeForce GTX 1660 Ti все выглядит несколько иначе. С менее мощными видеокартами и новыми играми на Vulkan API технология NVIDIA Adaptive Shading может оказать более существенное влияние.