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