Sampler feedback что это
#1 Tovbot
Ниже информация собранная из цепочки твитов Гэвина Стивенса, совладельца и ведущего дизайнера инди-студии разработчика Team Blur Games.
Нам часто придется слышать про SFS (Sampler Feedback Streaming), поэтому полезно понять почему эта фишка настолько важна и почему она обеспечивает такой большой вклад в производительность Xbox Series X. Так что давайте посмотрим.
Текстуры могут различаться по размеру в зависимости от разрешения и используемого метода сжатия. Например, стандартный комплект текстур разрешением 512х512 может иметь размер в 36 Мб. Но в новом поколении более популярными будут текстуры большего разрешения, 4096×4096 и 8192×8192. Стандартный комплект текстур формата 4096 весит 144 Мб, а в формате 8192 уже 576 Мб. Это если считать несжатый размер, для экономии места текстуры обычно сжимаются с применением различных алгоритмов. Но мы для простоты сейчас рассмотрим вариант без учета сжатия.
Каждая текстура включает в себя элементы называемые «mip map», я не знаю как это правильно перевести на русский, буду называть просто мип. Это версии исходной текстуры с уменьшенным разрешением. Они нужны потому что использование полноразмерных текстур для объекта, который находится на расстоянии, приводит к графическим артефактам в виде шума. Это хорошо видно на изображении ниже:
Таким образом, необходимо подбирать нужное разрешение текстуры для поверхности из имеющего комплекта в зависимости от расположения объекта на сцене.
Современные игры умеют это делать автоматически. Закинь ей текстуру 512х512 и она сама использует в картинке мип подходящего разрешения. Но что значит подходящего? Мип делается из исходной текстуры уменьшением ее разрешения в два раза. То есть если исходная текстура была 512 на 512 пикселей, но мипы будут по 256, 64, 32, 16 и т.д. Таким образом, вы видите, что чем больше исходное разрешение текстуры, тем больше мипов ей потребуется. И речь идет о КАЖДОЙ текстуре в игре.
Теперь вернемся в SFS. Обычный метод использования этих данных заключается в том, что мы загружаем в память всю текстуру, со всеми ее мипами. Таким образом, если модель персонажа использует 8192 текстуру, то вам ничего не остается как держать ее всю в памяти.
Неважно, стоит ли персонаж у тебя перед глазами или ты видишь его на другом конце карты, это не имеет значения. Если игровой движок считает, что этот объект нужен, то он в памяти. Напоминаю, это не только одна текстура, это весь комплект на все случаи возможного использования. Просто представьте себе весь объем информации, который игра держит в памяти для персонажа на другом конца карты, который на вашем 65 дюймовом ТВ занимает 1 см. А между тем если на него посмотреть близко, то он выглядит примерно вот так:
Традиционные системы, включая PS5, работают именно так. Но с использованием SFS все меняется кардинально. SFS загружает только тот мип, который нужен в конкретной ситуации и игнорирует все остальные ненужные элементы текстуры. Почему это важно? Потому что в этом случае, если взять пример с 8192 текстурой, объем занимаемой текстурой памяти составит не 576 Мб, а 576 Кб.
В данном случае игре, например, достаточно загрузить мип разрешением 128х128 потому что объект на большом расстоянии. И это работает всегда, потому что вы всегда будете рядом с одними объектами в игре, но далеко от других объектов.
Таким образом, теперь вам нужно загружать в память намного меньше текстурных данных. И как следствие, ваши потребности в пропускной способности системы памяти оказываются существенно ниже. Вы можете загружать нужные данные требуемого качества достаточно быстро и при этом с меньшей нагрузкой на систему.
Короче говоря, вам достаточно меньшей скорости обмена данными для обеспечения того же уровня детализации. Что ведет не только к тому что у вас больше памяти в распоряжении, но и ускоряет производительность.
Безусловно, SSD на PS5 быстрее чем на Xbox Series X. Но есть разные способы добиться нужной производительности и здесь SFS является революционным способом обеспечить системе обмена данными Xbox Series X производительность на том же уровне, что и на PS5.
Добавьте сюда фиксированные частоты с парой дополнительных терафлопс и прочие трюки с рендерингом (очень интересно какую альтернативу DLSS 2.0 предложит MS) и становится очевидно что Series X это чертовские классная машина.
Собственно, обе консоли потрясающие. Но в то время как Сони сложила почти все яйца в корзину с SSD, MS позаботилась обо всех элементах системы. SSD на XSX это классное устройство с впечатляющим набором оптимизаций и вместе с SFS он играет в уже совсем в другой лиге.
В конечном счете обе консоли очень круты и независимо от того в синей вы или в зеленой команде, мы все стоим на пороге чертовски классного поколения.
Microsoft представляет DirectX 12 Ultimate: новый стандарт для современных игр с поддержкой GeForce RTX
В выпущенных в 2018 году видеокартах GeForce RTX были впервые реализованы многие технологии: аппаратно ускоренная трассировка лучей, Variable Rate Shading, Mesh Shading и другие. Эти технологии представляют собой самый большой прорыв в игровой графике с момента изобретения программируемых шейдеров в 2002 году и обеспечивают в играх отражения, тени и освещение кинематографического качества. Теперь Microsoft анонсировала новый графический API DirectX 12 Ultimate, который закрепляет инновационные технологии Turing как стандарт для мультиплатформенных игр нового поколения.
DirectX 12 Ultimate предоставит разработчикам доступ к большой базе устройств с поддержкой новых функций, готовые инструменты и примеры, а также промежуточное ПО для экономии усилий. Это упрощает и ускоряет разработку игр, а также позволяет разработчикам чаще добавлять инновационные технологии в игры. Многие разработчики уже выпустили проекты нового поколения с этими технологиями: на данный момент анонсировано и выпущено более 30 игр с DirectX Ray Tracing, а с выпуском DirectX 12 Ultimate их количество значительно вырастет.
Только на GeForce RTX, первой и единственной платформе, поддерживающей инновационные технологии на ПК, геймеры получат максимум возможностей в графически насыщенных играх сейчас и в будущем.
DirectX 12 Ultimate unlocks the latest in graphics hardware technology with support for ray tracing, mesh shaders, and variable rate shading. It’s the new gold standard for the next generation of games.
— Marcus Wassmer, Director of Engineering, Graphics, Epic Games
Технологии DirectX 12 Ultimate
Трассировка лучей
С появлением трассировки лучей в DirectX 12 Ultimate во всех основных игровых движках и современных консолях, массовое появление трассировки лучей в мультиплатформенных играх должно начаться уже в конце этого года. И лучше всего она будет выглядеть и работать на видеокартах GeForce RTX благодаря специализированным ядрам RT для аппаратного ускорения трассировки лучей, и повышающей производительность технологии DLSS.
Variable Rate Shading
Variable Rate Shading (VRS) повышает производительность, позволяя отрисовывать разные участки сцены с разным уровнем качества. В Wolfenstein: Youngblood на API Vulkan технология NVIDIA Adaptive Shading (вариант VRS) повысила производительность в среднем на 15% без заметной потери качества изображения. Благодаря поддержке Variable Rate Shading в DirectX 12 Ultimate все разработчики могут легко добавить полезную технологию в игры.
DirectX 12 Ultimate is going to accelerate the adoption of cutting edge graphics features in games because development platforms are not fragmented. With DirectX 12 Ultimate I know that I can adopt new graphics features immediately and that they will work in PC and Xbox games. We are already experimenting with DirectX 12 Ultimate for Rogue Company, which will launch in 2020.
На картинке ниже можно увидеть, как VRS отрисовывает участки изображения с разной детализацией. Цветной оверлей справа показывает возможные варианты для кадра: автомобиль, небо и листва прорисовываются полностью (синим цветом) со всеми мелкими деталями. В области рядом с автомобилем затеняется один пиксель из четырех (зеленым), а для дороги вдалеке слева и справа — один пиксель из восьми (желтым).
Эти области также размываются для создания эффекта скорости, и поэтому их сложно четко видеть во время игрового процесса. Поэтому с помощью VRS частоту затенения можно уменьшить без заметной потери качества и мгновенно получить прирост производительности.
Подробнее узнать об этой высокопроизводительной технологии можно в нашей статье о Variable Rate Shading и NVIDIA Adaptive Shading.
Mesh Shading
Если вы играли в игру с открытым миром и экспериментировали с настройками графики, то знаете, что повышение уровня геометрической детализации может значительно понизить производительность. Большое число вызовов отрисовки объектов перегружает процессор, который в свою очередь может ограничивать производительность графического процессора. Технология Mesh Shading позволяет разработчикам решить эту проблему, а также повысить качество графики и производительность благодаря новым методам рендеринга, которые помогут создавать миры с огромным числом объектов и полигонов в кадре.
DirectX 12 Ultimate is going to accelerate the adoption of cutting edge graphics features in games because development platforms are less fragmented. With DirectX 12 Ultimate we are able to adopt new graphics features on multiple platforms faster than before.
Чтобы наглядно показать работу технологии, мы сделали демо «Астероиды», в котором Mesh шейдеры отрисовывают и динамически корректируют уровни детализации 350 000 астероидов с таким уровнем производительности, который невозможно достичь иным способом.
Посмотреть демо можно здесь
DirectX 12 Ultimate позволяет реализовать технологию Mesh Shading в играх быстрее и проще. Поэтому теперь можно создавать реалистичные леса с густой растительностью, мегаполисы с высоким уровнем детализации и, конечно же, космические сцены с грандиозными космическими станциями и удивительными астероидными полями.
Подробнее о механизме работы Mesh Shading можно прочитать в статье о технологиях и архитектуре Turing.
Sampler Feedback
Sampler Feedback работает по тому же принципу, что и Variable Rate Shading: интеллектуально снижает нагрузку на GPU и повышает производительность. Технология обеспечивается Texture Space Shading, аппаратной возможностью архитектуры Turing.
As a developer, a single API for PC and Xbox is a boon for my business. If my programmers know DirectX 12 Ultimate they can code for either PC or console.
— Koen Deetman, CEO & Game Director, KeokeN Interactive
Почти все современные игры отрисовывают новые кадры с нуля, не используя сделанные раннее вычисления (за исключением временного сглаживания, NVIDIA DLSS и некоторых технологии постобработки). Но в большинстве игр, как и в реальной жизни, изображение не слишком изменяется между кадрами. Если вы посмотрите в окно, то можете увидеть колышущиеся на ветру деревья, идущих людей или летящих вдалеке птиц. Но большая часть картинки остаётся неизменной. В основном меняется только угол обзора.
Когда вы посмотрите под другим углом, некоторые предметы действительно будут выглядеть иначе, особенно глянцевые или блестящие. Но большинство из них изменится незначительно, и поэтому ценные ресурсы GPU будут напрасно тратиться на пересчет тех же самых цветов для объектов, которые есть в каждом кадре и освещение которых не меняется. Представьте, например, деревянный телефонный столб — независимо от положения головы и угла обзора, он выглядит практически одинаково.
Sampler Feedback позволяет затенять текстуры объектов вместо традиционных пикселей экрана. Текстуры можно затенять реже, например, в каждом третьем кадре, также можно повторно использовать результат затенения в новых кадрах, если освещение не меняется. Принцип повторного использования расчетов можно применять для трассировки лучей, особенно для глобального освещения. Это распространенный пример медленно меняющегося, но очень ресурсоемкого с точки зрения вычислений эффекта.
Подробный обзор технологии можно найти здесь.
DirectX 12 Ultimate — Особенности, что нового, какие видеокарты
Microsoft анонсировала следующую версию DirectX, получившую название DirectX 12 Ultimate. Что делает эту новость более интересной, так это то, что он также объединяет ПК и Xbox Series X, т. е. Унифицированную графическую платформу для ПК и Xbox Series X.
Более ранней версии DirectX 12 уже почти шесть лет и ожидается значительное обновление, главным образом потому что игры на Xbox также доступны для ПК. Microsoft недавно объявила о деталях Xbox Series X, которые работают на DirectX 12 Ultimate.
Давайте рассмотрим все функции и инструменты разработчика, которые предлагает Microsoft.
DirectX 12 Ultimate Особенности
Microsoft четко заявила, что если вы купите новый компьютер с логотипом DX12 Ultimate, он гарантированно поддержит все функции графического оборудования следующего поколения.
Все эти функции гарантируют, что ваш компьютер сможет запускать игры следующего поколения, которые зависят от этого. DX12 Ultimate будет работать на оборудовании текущего поколения, но не будет предоставлять визуальные преимущества новых функций.
Унификация платформ повысят популярность и вдохновит разработчиков на создание игр для обеих платформ.
dx12u
1] DirectX Raytracing 1.1
Это даст разработчикам шанс достичь уровня графики, который был возможен только в Болливуде. DirectX Raytracing или DXR позволяют отслеживать пути света с помощью реальных физических расчетов. Это также облегчает игровым движкам рендеринг объектов при перемещении игрока.
Все это возможно, поскольку графический процессор может напрямую вызывать трассировку лучей, не дожидаясь загрузки процессора, что позволяет ему сразу же появиться. Он также предлагает встроенную шапку трассировки лучей, которая дает разработчикам возможность управлять большей частью процесса трассировки лучей. Все это на аппаратном уровне.
2] Variable Rate Shading
Разработчики теперь могут выборочно изменять скорость затенения в игре. Они могут использовать графический процессор, чтобы использовать его мощность для улучшения визуального представления или повышения скорости.
Так что, если это сцена с быстрым темпом, разработчики могли бы проинструктировать GPU использовать скорость, а для кинематографического кадра, сделать, чтобы она работала на лучших визуальных эффектах.
3] Mesh Shaders
Эта функция предоставляет больше возможностей для программирования. Теперь они могут создавать более детализированные и динамичные миры благодаря наличию полной мощности обобщенных вычислений на GPU для геометрического конвейера. Вместо одной функции затенения, сетчатые Шейдеры работают по всей группе вычислительных потоков.
Вместо одной функции, которая затеняет одну вершину или один примитив, шейдеры работают во всей группе вычислительных потоков с доступом к общей памяти группы и расширенными функциями вычислений, такими как межполосные встроенные волны, которые обеспечивают еще более детальный контроль.
4] Sampler Feedback
Это позволяет разработчикам загружать текстуры при необходимости. Поэтому, когда камера быстро снимает сцену, некоторые объекты выглядят не на своем месте.
Обратная связь с сэмплером обеспечит лучшее визуальное качество, более короткое время загрузки и меньшее заикание.
Какие видеокарты поддерживают Directx 12 ultimate
NVIDIA официально заявила, что серия GeForce RTX будет первой, кто испытает dx 12 ultimate. AMD RDNA 2 также будет работать с 12 версией директ икс ultimate, что и является будущей игровой архитектурой AMD.
Инструменты и требования
Microsoft поделилась полной информацией об инструментах и минимальными требованиями для разработки с использованием DirectX 12 Ultimate.
Что такое Sampler Feedback и архитектура XBOX Velocity?
Приветствую всех. Сделал ролик про технологию Sampler Feedback, в котором простым языком постарался рассказать о сути технологии и её назначении. Также рассказал про архитектуру XBOX Velocity
Не заглядывая, угадал авторов по описанию. Так или иначе такие видео либо от вас, либо от DL, спасибо)
Спасибо за видео! Эх, а ведь когда-то DTF предназначался для распространения именно такой вот информации.
Благодарю за отзыв!
Я так понял, пока ни в одной игре полноценно велосити не используется потому, что все игры кроссгеновые и нужно внедрять в движок?
Да. Нужно адаптировать движок под эти технологии. Вообще в некоторых движках разработчики делают свою реализацию потоковой передачи текстур, а сейчас это будет на уровне стандарта, что удобнее в большинстве случаев. Удобнее потому, что можно сделать аппаратное ускорение на уровне видеокарты. Собственно, в NVIDIA RTX и AMD RX 6000 и старше DX12 Ultimate и все его технологии поддерживаются аппаратно
Стриминг на основе сэмплер фидбека относительно спорная штука, далеко не факт, что это станет стандартом. Да, текстурный футпринт в памяти получается в среднем меньше, но платить за это приходится реактивным стримингом. Т.е. мы сначала должны отрендерить текстуру, чтобы понять, какой кусок надо загрузить. Это делается либо предварительным проходом (что тратит время), либо забиваем на проблему и первые пару кадров текстура рендерится без нижних мипов (т.е. мыльная). Плюс сам по себе сэмплер фидбек + процессорная поддержка таблицы страниц для тайлов штука не самая быстрая, майкрософт сами рекомендуют делать его пореже.
Texture-space shading тоже не серебряная пуля, где-то хорошо заходит (стереопара для vr, например), но далеко не везде.
Ну т.е. сама технология (на железном уровне) весьма интересная, но предлагаемые варианты использования довольно спорные и вряд ли будут реализованы именно в таком виде в каждом втором тайтле. Как минимум потому что подходы с visibility buffer становятся все более распространены (привет, нанит!), а они дают те же преимущества, если рендерится не стереопара, а одно изображение, не требуют сэмплер фидбека и работать в теории должны быстрее (хотя свои недостатки у них тоже есть) ред.
Как всегда, интереснейшие и полезнейшие видео на DTF! Спасибо
Благодарю за ознакомление и отзыв! Ради такого хочется и дальше стараться
я так понимаю что уменьшить потребление видеопамяти можно будет увеличенной нагрузкой на ssd, интересно было бы взглянуть на сравнения с разными количествами частей, и как это влияет на нагрузку ssd и процессора. Мол разделить текстуры на 10 частей а потом на 100.
Пора обновляться сорри
Поэтому я и сказал про «купил видеокарту и игра тормозит больше», конечно обновляться надо, ну при этом обнова не должна поднимать требование к остальному железу
Не люблю аналогии но чёт уровня
«Поставил в свою шаху двигатель от БМВ а она рассыпалась»
Я вообще не понимаю людей которые «обновляют» комп. Ток если каждый год менять видяхи. Мне вот раз в 7 лет менять все
тут скорее вариант в бмв поставил двигатель от 9ки, потому что в такой ситуации скорее и процессор нормальный, и видеокарта, а жесткий важный в последняю очередь
Да, всё так. Раз в 7 лет замена всего.
Согласен, было бы интересно глянуть) Надеюсь, такой материал выложат в сеть)
Как SSD улучшает производительность в консолях при потоковой передаче
Как работает Sampler Feedback
Sampler Feedback использует результаты предыдущего обработанного кадра, чтобы определить, какие текстуры читать в памяти. Идея состоит в том, что большинство текстур, которые хранятся в памяти, имеют очень низкое качество детализации, но поскольку игре требуются текстуры с более высоким разрешением, они загружаются для следующего кадра. В основном это сохраняет уже обработанный кадр в памяти для последующего использования.
Каждая текстура состоит из так называемых «MIP-карт», которые представляют собой цепочку постепенно уменьшающихся версий каждого кадра каждой текстуры. Разработчики используют эти мозаичные текстуры, которые разбивают большие текстуры на небольшие коробки, которые можно загружать по отдельности оптимизировать процесс и повысить производительность.
Например, текстура 1024 x 1024 может состоять из мозаики размером 64 128 x 128 кадров. Ваш Mipmap будет иметь текстуру 512 x 512 из 16 128 x 128 кадров и еще меньшую 256 x текстуру. 256 сделан из 4 кадров и еще меньших текстур для дальнейшего просмотра.
Это означает, что после рендеринга ЦП содержит много информации о том, какие именно плитки необходимы, вы можете быстро сравнить эти данные с тем, что уже загружено, и в конечном итоге получите список того, что GPU запрашивает, но не имеет. ЦП также может отслеживать недавно запрошенные плитки, которые вы можете загрузить, чтобы освободить память.
Как консольный SSD улучшает производительность потоковой передачи
Есть две вещи, которые определяют, насколько быстро может работать SSD: размер запросов (сколько данных входит) и глубина очереди (сколько запросов он получает параллельно). Для SSD чтение 4K с глубиной 1 или 2 является типичной «случайной» рабочей нагрузкой и обычно выполняется довольно медленно. Напротив, чтение 128 КБ при глубине очереди 16 дает гораздо лучшую производительность.
Размер тайла 128 x 128 и 4 байта на пиксель составляет 64 КБ. Несколько текстур, таких как обычная и цветная, всегда будут необходимы одновременно, поэтому они загружаются и выгружаются вместе, поэтому после сжатия размер может составлять 64 КБ или более. Поскольку ЦП всегда знает, какие текстуры необходимы, он может ставить их в очередь так быстро, как хочет, а это означает, что когда речь идет о передаче текстур, она значительно выиграет от увеличенной пропускной способности, которую обеспечивает SSD.
Продолжая пример Xbox Series X, если скорость загрузки текстур после распаковки составляет 3.8 ГБ / с, это позволит загружать 64 МБ на кадр со скоростью 60 кадров в секунду; этого достаточно для загрузки 1000 текстур на кадр, что эквивалентно одной текстуре 4096 x 4096.
Другими словами, с этой технологией Sampler Feedback у нас определенно будет лучшая производительность и лучшее качество текстур, что особенно интересно для потоковой передачи, потому что она будет иметь меньший штраф для GPU и CPU, используя огромную пропускную способность SSD.