variable rate shading что это
VRR — что такое «адаптивная синхронизация частоты кадров»?
Содержание
Содержание
Геймеры бывают разные: одним важен сюжет, а графика остается на втором плане, другие готовы отдать все, чтобы выжать из компьютера как можно больше заветных кадров в секунду. Но, как активно и часто они ни улучшают для этого игровую систему, визуально не все оказывается гладко: как ни крути, в играх остаются разрывы изображения. Производители нашли, как это исправить — при помощи технологий адаптивной синхронизации кадров, например, VRR. Разберемся, что это такое и чем отличается от остальных технологий.
Представим, что монитор включается и выключается шесть раз в секунду, то есть, работает с частотой 6 Гц. За это время видеокарта успевает подготовить шесть кадров. Они работают синхронно: каждый кадр отображается ровно в момент включения дисплея, поэтому на экране показывается вся информация без изменений. Если видеокарта способна подготовить за тот же промежуток времени не шесть, а семь кадров, то монитор с частотой развертки 6 Гц не сможет отобразить все отрисованные кадры в правильном порядке, но кое-как попытается это сделать. Так как один кадр всегда остается лишним, в какой-то момент на дисплее окажется изображение, составленное из двух кадров, наложенных друг на друга.
Это явление известно как «тиринг». Оно проявляется независимо от мощности процессора, видеокарты, а также «крутости» телевизора и монитора. В результате постоянного «подселения» лишних кадров к тем, которые попали по адресу во время включения монитора, в непрерывном геймплее возникают сдвиги и разрывы. Чтобы исправить это и вернуть игровому процессу плавность, производители придумали технологии синхронизации частоты кадров. Среди уже известных способов, которые мы обсуждали в отдельном материале, есть и совсем новые — например, VRR.
Вспомним основные технологии:
V-Sync — программный способ синхронизации кадров. Технология поддерживается на уровне софта, поэтому может быть включена в любой игре и любом проекте. Принцип работы прост до безумия: драйвер считывает частоту обновления монитора и ограничивает количество кадров, выдаваемых видеокартой, до этого значения. Например, при частоте развертки монитора 60 Гц вертикальная синхронизация ограничит график кадров на отметке 60 fps. Для большинства игровых задач этого достаточно: разрывы исчезают, картинка становится плавной.
Безупречная работа этой функции продолжается ровно до тех пор, пока видеокарта способна обрабатывать необходимое количество кадров в секунду. Если же графический ускоритель снизит частоту хотя бы до 59 fps, то V-Sync автоматически установит ограничение, кратное двум. Тогда на экране станут отображаться не 59 или 60 кадров, а ровно 30 — так, чтобы монитор снова работал синхронно с каждым кадром. В этом и заключается главный недостаток вертикальной синхронизации, который удается обойти с помощью новых технологий.
G-Sync — фирменная технология синхронизации кадров NVIDIA, которая значительно отличается от программного метода. В этом случае не кадры подгоняются под частоту монитора, а частота монитора устанавливается динамически таким образом, чтобы каждое включение монитора соответствовало одному готовому кадру. Естественно, технология обладает ограничениями: работа синхронизации возможна в пределах от 30 fps до 240 fps. И пока тандем не выходит за рамки этих ограничений, все выглядит идеально. Стоит видеокарте сфальшивить и опустить частоту кадров ниже минимума, как волшебный «джисинк» превращается в обычную вертикальную синхронизацию.
Работа этого метода зависит от аппаратных возможностей монитора и видеокарты. Для активации G-Sync пользователю необходимо подружить совместимый дисплей с «зеленым» ускорителем не старше 10-го поколения. Ограничения обусловлены проприетарностью технологии: NVIDIA разрешает использовать свои наработки только в рамках лицензии, расходы на ее приобретение производители мониторов перекладывают на покупателей. Туда же они включают стоимость дополнительного модуля — что-то вроде отдельного компьютера в корпусе монитора, который отвечает за работу синхронизации. Отсюда завышенная стоимость мониторов с поддержкой этой функции.
FreeSync — технология синхронизации кадров от компании AMD. По традиции производитель превращает сложные вещи в простые и делает дорогое волшебство доступным каждому. Поэтому «красная» технология работает так же хорошо, как G-Sync, но не требует установки дополнительного компьютера в монитор, а также разрабатывается в открытом порядке — без лицензий и «переплат».
Вторая версия FreeSync поддерживает расширенный диапазон частот от 9 Гц до 240 Гц. При этом для активации синхронизации кадров подойдет не только фирменный ускоритель, но также любые видеокарты NVIDIA не старше 10-го поколения. Таким образом, для использования этой технологии достаточно обладать подходящим монитором или телевизором.
VRR (Variable refresh rate) — относительно свежая технология адаптивной синхронизации. На самом деле, это собирательное название для всех алгоритмов синхронизации. Поэтому для технологии, о которой идет речь в материале, лучше использовать название HDMI Forum VRR.
Приставка «HDMI» в расшифровке аббревиатуры говорит о том, что VRR является частью одноименного стандарта передачи данных. И это не первая попытка создать технологию, привязанную к разъему. Ранее функцию под названием VESA Adaptive Sync получил стандарт DisplayPort — те же «кадры», только в профиль.
С появлением новой версии HDMI телевизоры и передающие устройства научились понимать высокую частоту развертки в разрешении 4К, автоматически распознавать контент и подстраивать работу телевизора под игры, а также регулировать частоту обновления экрана динамически, как это делают игровые мониторы с поддержкой G-Sync и FreeSync. Соответственно, VRR работает идентично перечисленным выше технологиям, но имеет несколько преимуществ.
VRR может работать не только на устройствах с поддержкой HDMI 2.1, но также и через HDMI 2.0. Даже в таком режиме пользователь получает эффект плавной картинки. Отличие только в максимальном разрешении и частоте развертки. Если HDMI 2.1 переваривает до 120 fps в разрешении 4К, то HDMI 2.0 ограничен частотой 60 Гц.
С появлением VRR производителям игровых консолей больше не нужно использовать дополнительное ПО в прошивке, чтобы реализовать работу FreeSync или G-Sync. Все уже давно предусмотрено в HDMI, который они, в любом случае, реализуют в своих системах. Более того, производителям телевизоров также можно вздохнуть полной грудью и избавиться от забот по реализации проприетарных технологий синхронизации частоты.
При подключении ПК или консоли к телевизору с поддержкой FreeSync режим HDR Dolby Vision отключается. Технология синхронизации AMD является отдельной функцией и занимает часть ширины потока HDMI, поэтому некоторые полезные надстройки деактивируются. С VRR такого не случится. Для этой технологии адаптивной частоты выделен собственный канал, используя который, функция не мешает работе остальных сигналов и потоков.
На чем работает
Даже на начальном этапе распространения функции большинство видеокарт и современных телевизоров оказываются совместимыми с VRR. Технология привязана к стандарту передачи данных и не может быть «вырезана» производителем телевизора или графического ускорителя. Поэтому она поддерживается не только новыми устройствами, но даже прошлогодними видеокартами типа NVIDIA RTX 2000 или AMD Radeon RX 5000 серии. Ходят слухи, что в будущем поддержку новой технологии получат даже устройства со встроенной графикой Intel.
VRR активно интегрируется в телевизоры LG, начиная с моделей 2020 года, а также в модели Samsung серий Q80 и Q90 и новее. Поддержка технологии заявлена и производителями игровых консолей: Xbox One, Xbox Series и PlayStation 5. До обновления ПО предыдущие консоли Microsoft работали только с Freesync, а прошлые устройства Sony до сих пор довольствуются обычной вертикальной синхронизацией.
Как включить
Для активации VRR необходима не только аппаратная совместимость комплектующих, но и программная поддержка со стороны операционной системы. VRR появилась в Windows 10 после обновления до версии 1903, где функция существует как дополнение к G-Sync и FreeSync, а не отдельная самостоятельная технология.
Разработчики заявляют, что включение опции не влияет на работу остальных технологий синхронизации, а лишь дополняет их в тех проектах, где нет поддержки других алгоритмов. Например, в играх с DirectX 11, а также в случаях, когда режим работы G-Sync не покрывает задачи пользователя: не хватает диапазона поддерживаемых частот, или поддержка G-Sync и FreeSync просто отсутствует в мониторе.
Чтобы включить адаптивную синхронизацию частоты в Windows 10, необходимо:
После этого отправляемся в Настройки:
Система:
Дисплей:
Настройки графики:
И нажимаем «Включить VRR»:
Работает?
Чтобы убедиться в работе VRR, подключим игровую сборку с графическим ускорителем NVIDIA RTX 2070 Super к телевизору линейки LG 916NANO и запустим игру без поддержки G-Sync или FreeSync. Панель обладает разрешением 4К, а также поддерживает современные плюшки: HDR, Dolby Vision, HFR, LFC и все актуальные технологии синхронизации частоты кадров. Не забываем проверить настройки в панели управления видеокартой. Для AMD ищем пункт FreeSync, а для NVIDIA надстройку G-Sync:
После успешной активации режима адаптивной надстройки частоты телевизор сообщит об изменении профиля работы, после чего в игровых настройках графики необходимо отключить классическую вертикальную синхронизацию. Правильная настройка покажет себя в геймплее. Если все настроено верно, в игре исчезнут разрывы изображения и смена кадров станет плавной. Как в этом примере:
Третий — лишний?
Очередная технология адаптивной синхронизации не обещает стать единственным решением, которое заполнит рынок и вытеснит остальные методы. Наоборот, каждый производитель развивает собственный стандарт, улучшает его и модернизирует, что играет на руку пользователю и производителям аксессуаров. Выбирай любую технологию и все равно попадешь в цель. Появление VRR на рынке игровых устройств не стало революцией, как это было с выходом технологии NVIDIA. Но кое-что полезное новый алгоритм все-таки принес — это глобальная стандартизация и упрощение технологий, что помогает активно «въезжать» на рынок игровых устройств даже самым бюджетным моделям телевизоров и мониторов. Как ни удивительно, это снова идет на пользу потребителю — профит, да и только.
В DirectX 12 добавлена поддержка Variable Rate Shading
Одной из главных задач игростроя и программирования в целом является оптимизация без существенной потери качества. Потому в своё время появилась куча кодеков для аудио и видео, которые обеспечивали сжатие, сохраняя приемлемые показатели. А теперь компания Microsoft представила своё решение аналогичного характера для игр.
На мероприятии Game Developers Conference 2019 корпорация из Редмонда объявила о реализации технологии Variable Rate Shading, которая входит в API DirectX 12. Эта технология является функциональным аналогом NVIDIA Adaptive Shading и предназначена для экономии ресурсов видеокарты. Это позволяет снизить нагрузку при просчёте периферийных объектов и зон. При этом технология позволяет повышать детализацию там, где это необходимо.
В результате такая технология повышает производительность в игре без заметной потери качества изображения. В ходе презентации компания показала работу технологии в игре Civilization VI. Как отмечается, кадровая частота в левой части изображения оказалась на 14 % выше, чем в правой при одинаковом качестве.
Ряд компаний, в том числе Turn 10 Studios, Ubisoft, Massive Entertainment, 343 Industries, Stardock, IO Interactive, Activision и Epic Games, уже заявили, что внедрят в свои проекты Variable Rate Shading. При этом в Редмонде заявили, что технология поддерживается картами NVIDIA на архитектуре Turing и будущим семейством Intel Gen11. Также не исключено, что VRS будут поддерживать и будущие дискретные карты Intel, хотя явно этого пока не говорили. А ранее появлялись слухи о поддержке технологии в GPU поколения Navi и игровых next-gen-консолях.
В результате технология позволит создавать более качественные в графическом плане игры со сравнительно невысокими требованиями к видеокарте.
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 может оказать более существенное влияние.
Variable Rate Shading is a Turing feature that increases rendering performance and quality by varying the shading rate for different regions of the frame.
VRS Wrapper makes it easier for developers to integrate gaze tracking capabilities of their HMDs for foveated rendering. This solution includes convenient presets for image quality and performance, as well as support for custom configurations.
Variable Rate Supersampling (VRSS) leverages VRS to apply supersampling in the region of interest of the screen in order to increase image quality.
Variable Rate Shading
An important property of VR systems is that the optics in the lens creates a varied resolution and sample rate of the view surface. With the Maxwell and Pascal architectures, we introduced techniques such as Multi-Resolution Shading (MRS) and Lens-Matched Shading (LMS) to optimize shading workloads for VR. MRS and LMS allowed developers to split the rendering surface up into subregions and match the sampling rate to the lens in each region, rather than overshading everywhere to meet the maximum local sampling needs.
Hardware: | Compatible with: VR Ready Turing based GPUs. |
Software: | Compatible with the following APIs: DX11, DX12, OpenGL, Vulkan. |
This fine level of control enables developers to deploy new algorithms that were not previously possible for optimizing shading rate and increasing image quality. In this section, we will describe the underlying hardware mechanisms of VRS, and a few of the ways developers can enable it.
Figure 1 – Turing VRS supported shading rates and example application to a game frame.
With Turing’s Variable Rate Shading technology, a scene can be shaded with a mixture of rates varying between once per visibility sample (super-sampling) and once per sixteen visibility samples. The developer can specify the shading rate spatially (via a texture). As a result, a single triangle can be shaded using multiple rates, providing the developer with fine-grained control.
Note that VRS allows the developer to control the shading rate without changing the visibility rate. The ability to decouple shading rate and visibility rate makes VRS more broadly applicable than techniques such as MRS and LMS, that lower total rendering resolution in specified regions. At the same time, VRS, MRS, and LMS can be used in combination since they are independent techniques enabled by separate hardware paths.
Increase rendering performance
Boost application performance using coarse shading
Maximize quality where it matters
Fine-grained control over image quality improvements via supersampling
Unlimited configurability
Obtain the best image quality and performance for your application
В 3DMark появился более продвинутый метод Variable-Rate Shading
Оптимизация и повышение производительности — ключевая задача в играх, ведь они исполняются в реальном времени. С этой целью Microsoft на мартовском мероприятии GDC 2019 представила Variable-Rate Shading (VRS), которая стала частью API DirectX 12. Она аналогична технологии NVIDIA Adaptive Shading и призвана снизить нагрузку при просчёте периферийных объектов и зон (например, однородного моря или тумана) с помощью снижения точности проводимых вычислений. До сих пор 3DMark позволял сравнить разницу в производительности и качестве изображения при использовании Tier 1 Variable-Rate Shading. Тест работал по простому принципу: те объекты изображения, которые ближе к пользователю, вычислялись с более высокой точностью, а дальние — с более низкой.
3DMark, VRS Tier 2 включён
Теперь команда UL Benchmarks добавила новую опцию, позволяющую использовать более универсальную и сложную форму VRS с помощью Tier 2 Variable-Rate Shading. В DirectX есть два уровня поддержки VRS: в Tier 1 разработчики могут указывать различную точность расчётов для каждого вызова отрисовки, а Tier 2 добавляет больше гибкости и контроля, позволяя использовать разную точность внутри каждого вызова отрисовки.
3DMark, VRS Tier 2 отключён
В новом тесте VRS Tier 2 в 3DMark более низкая точность расчётов используется для тех областей, где контрастность между соседними пикселями меньше: например, в областях в тенях или с меньшим количеством деталей. Функциональный тест 3DMark VRS выполняется в два этапа. VRS отключается при первом прохождении теста, чтобы получить эталон для сравнения. Во втором проходе применяется VRS. Затем тест сообщает среднюю частоту кадров для каждого прохода и вычисляет выигрыш в производительности, полученный благодаря VRS.
Функциональный тест VRS также предлагает интерактивный режим, который позволяет на лету изменять настройки VRS, чтобы увидеть, как они влияют на частоту кадров и качество изображения. Удобная опция визуализатора показывает, в каких местах используется тот или иной уровень точности. Например, на приведённом скриншоте белым отмечены области точности 1×1, жёлтым — 1×2 или 2×1, оранжевым — 2×2, розовым — 2×4 или 4×2 и фиолетовым — 4×4:
Как сообщают разработчики, для работы Variable-Rate Shading требуется Windows 10 1903 или более поздняя и совместимый ускоритель. Tier 1 VRS поддерживают ГП NVIDIA Turing и графика в Intel Ice Lake, а Tier 2 VRS в настоящее время можно исполнять только на NVIDIA Turing.