Новости про шейдеры

В DirectX добавлена поддержка переменного уровня шейдирования

Компания Microsoft объявила о том, что её API DirectX 12 теперь поддерживает переменный уровень шейдирования — Variable Rate Shading (VRS), что обеспечит играм дополнительную производительность без потери качества.

Функция позволяет разработчикам раздавать приоритет качества шейдирования разным объектам, ухудшая качество второстепенных и повышая основных, сохраняя таким образом вычислительные ресурсы для других задач.

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

Сравнение экранного VRS. Слева включено, справа выключено

В решении Microsoft VRS может применяться на отрисовку, или внутри отрисовки. Последний вариант может быть использован на участке экрана, или на примитиве. Благодаря этому, разработчики могут определить оптимальный метод использования VRS, оптимизируя качество и повышая производительность.

Работа VRS внутри отрисовки на будущем GPU Intel в тесте Unreal Engine 4 Sun Temple

В тесте, проведённом с Firaxis, применяя VRS на обрисовку был получен 20% прирост производительности, но с некоторым ухудшением качества. Применив переменный уровень внутри отрисовки, в той же сцене прирост частоты кадров составил 14%, но с практически незаметной потерей качества.

AMD патентует переменный уровень шейдеров для Navi

Компания AMD готовится выпустить новую архитектуру GPU Navi, которая появится не только в новых консолях Xbox и PlayStation 5, но и в качестве отдельной видеокарты.

При этом компания хочет предложить и новые технологии, оптимизирующие производительность. Согласно утекшему в Сеть патенту, AMD готовит технологию переменного уровня шейдирования, которую она назвала VRS — variable rate shading. Эта технология обеспечит рендер некоторых элементов в игре с меньшим разрешением, увеличивая, таким образом, общую производительность системы. К примеру, если вы играете в шутер от первого лица, и смотрите в снайперский прицел, всё остальное изображение, находящееся за пределами угла обзора, в тёмной области, не нужно отображать и обсчитывать. Исключив такую излишнюю нагрузку можно заметно поднять частоту кадров в игре.

Технология VRS оценивает текущую частоту кадров и решает, какой из отображаемых кадров требует полной детализации, а какой нет. Таким образом, некоторые части могут быть отрисованы в полноценном 4K, а другие — в меньшем разрешении. При этом изображение не потеряет в качестве.

Что касается «зелёного» конкурента, то в видепроцессорах Turing подобная технология динамических шейдеров, Adaptive Sync, имеется. Она, в первую очередь, предназначена для далёких объектов, количество полигонов в которых динамически меняется за счёт отказа от расчёта невидимых при текущем разрешении пикселей. Технология NVIDIA позволяет на 40% сократить количество шейдируемых пикселей.

NVIDIA демонстрирует работу шейдеров нового типа

Компания NVIDIA опуликовала новое технологическое демо Asteroids, которое призвано продемонстрировать работу новой технологии связанных ячеек шейдеров, свойственных архитектуре Turing.

Чип Turing предлагает новый процесс программирования геометрических шейдеров. Этот новый тип шейдеров использует преимущества вычислительной программной модели в графической обработке. Вместо обработки вершин или латок в каждом потоке посреди фиксированной функции обработки, новая обработка использует объединённые группы потоков для генерации компактных ячеек связи (meshlets) на чипе, используя определённые приложением правила.

Демонстрация NVIDIA Asteroids

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

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

Asteroids Mesh Shaders Demo

Проще говоря, новая технология Turing Mesh Shaders позволяет динамически рассчитывать дальность отображения (LoD) в играх, не перегружая при этом систему.

NVIDIA обновила Cg Toolkit

Новая версия фирменного языка описания шейдеров для разработчиков.

Хотя Cg API, разработанный во времена GeForce FX как способ обойти ограничения производительности Microsoft DirectX на NV3x архитектуре, в последующие годы отошёл на второй план после улучшений в DirectX HLSL и OpenGL GLSL, он всё еще популярен у независимых разработчиков, а также используется на платформе PlayStation 3. Так что NVIDIA не забывает периодически его подновлять. В февральском обновлении инструментов для разработчиков на Cg сделаны следующие изменения:

  • прописано требование поддержки оборудованием расширения OpenGL EXT_gpu_shader4 при использовании битовых операций в GLSL;
  • семантика VFACE из языка описания шейдеров DirectX HLSL теперь принимается как синоним FACE в Cg;
  • улучшена работа с расширениями при использовании старых версий OpenGL;
  • исправлены проблемы с геометрическими шейдерами в Solaris;
  • пример gs_simple доработан для демонстрации использования профилей GLSL;
  • cgfxcat теперь работает с файлами шейдерных программ также, как и с файлами эффектов.

Загрузить последнюю версию CG Toolkit и документацию для различных платформ можно с сайта NVIDIA для разработчиков.