Корпорация Microsoft представила новую версию 1.4 своей технологии DirectStorage, нацеленной на максимально эффективное использование скоростных твердотельных накопителей NVMe. В рамках этого обновления был добавлен современный алгоритм сжатия и распаковки игровых данных Zstandard (Zstd), призванный ещё больше ускорить загрузку игр и повысить скорость передачи контента.
Источник изображения: Microsoft
Изначально DirectStorage была создана Microsoft в составе DirectX 12 для раскрытия потенциала быстрых SSD формата NVMe. До её появления за перемещение данных с накопителя на графический процессор отвечал центральный процессор, что приводило к долгой загрузке и возникновению задержек. Технология DirectStorage устранила это промежуточное звено, взяв на себя прямую потоковую передачу игровых ресурсов.
Ключевым нововведением в обновлении DirectStorage 1.4 стала библиотека подготовки игровых ресурсов (Game Asset Conditioning Library, GACL). Вместо обычного сжатия текстур, GACL выполняет их предварительную оптимизацию, что позволяет сократить объём файлов до 50%. Это достигается за счёт сочетания нескольких методов. Процесс «перетасовки» реорганизует внутреннюю структуру данных текстур, группируя повторяющиеся паттерны.
Технологии «Снижения энтропии на уровне блоков» (BLER) и «Снижения энтропии на уровне компонентов» (CLER) уменьшают сложность текстур, работая с отдельными блоками и цветовыми каналами. Они используют машинное обучение для сохранения визуального качества, гарантируя, что все изменения останутся незаметными для пользователя.
Для разработчиков это означает отсутствие необходимости в дополнительных действиях. DirectStorage автоматически обращает все преобразования, применённые при подготовке, в момент распаковки ресурса. Таким образом, нагрузка на игровой движок не увеличивается, а на графический процессор поступает уже полностью готовые к использованию текстуры.
В текущей публичной предварительной версии DirectStorage 1.4 поддерживается работа с текстурами форматов BC1, BC3, BC4 и BC5. Добавление поддержки BC7 и дальнейшие оптимизации производительности запланированы в следующем релизе.