24 апреля, 2024

Что такое Microsoft DirectStorage и как это ускоряет игры

Новый интерфейс прикладного программирования Microsoft может сократить продолжительность загрузки видеоигр, но как именно?

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

Естественно, за инновации нужно платить. Современные игры потребляют десятки гигабайт данных, чтобы вы видели красивое окружение и персонажей. Некоторые инструменты разработки игр не годятся для таких объёмов данных, из-за чего производительность падает.

Здесь на помощь может прийти Microsoft DirectStorage.

Зачем нужен Microsoft DirectStorage?

Прежде чем рассказать о Microsoft DirectStorage, нужно понимать, как работают нынешние методы трансляции данных.

При запуске игры ей нужны данные вроде текстур, моделей персонажей, аудио. Эти данные хранятся на устройствах вроде жёстких дисков. Игра требует данные через программные инструменты, которые называются интерфейсами прикладного программирования (API).

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

Когда вы загружаете игру, все данные сжаты, чтобы сэкономить место на диске. Графический процессор не может обрабатывать сжатые данные. Соответственно, их нужно разархивировать.

Попав в оперативную память, данные отправляются в центральный процессор для разархивирования. После этого данные копируются в память на видеокарте.

Наконец, графический процессор на видеокарте обрабатывает данные и превращает их в графику, которую вы видите на мониторе.

Этот метод обработки данных имеет два крупных недостатка.

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

Во-вторых, существующие API устройств хранения данных не умеют в полной мере задействовать аппаратные возможности этих устройств. Они разрабатывались, когда в компьютеры устанавливались медленные механические жёсткие диски, неспособные отправлять гигабайты данных в секунду. Эти интерфейсы программирования создавались для передачи ограниченного объёма данных.

Использующие старые API в наши дни разработчики должны обходить проблему небольшого объёма передаваемых данных при помощи методов вроде сокращения сложности сцен для снижения числа используемых файлов. Обрабатываются только текстуры и окружения, которые попадают в кадр, увеличивается продолжительность загрузки.

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

DirectStorage помогает разработчикам решить эти проблемы при помощи улучшенного процесса передачи данных.

Как работает Microsoft DirectStorage?

Microsoft DirectStorage представляет собой набор API для устройств хранения данных, призванный исправить недостатки современных API.

Когда разработчики задействуют DirectStorage API для запроса данных с устройства хранения, процесс имеет два значительных отличия.

Во-первых, после копирования данных в оперативную память процессору не нужно их разархивировать. Сжатые данные отправляются прямиком в графический процессор.

Во-вторых, интерфейсы полностью используют возможности сверхбыстрых NVMe SSD. Такие накопители нужны для работы DirectStorage. Пропускная способность у них заметно выше по сравнению с остальными SSD. Это позволяет читать большие объёмы данных в единицу времени. Значения исчисляются гигабайтами в секунду, в отличие от старых интерфейсов с уровнем мегабайты в секунду.

Графический процессор получает множество сжатых данных сразу и ему не нужно ждать поступления новых данных, прежде чем начать обрабатывать их. Остаётся только разархивировать данные, чтобы графический процессор мог их обработать.

DirectStorage обладает продуманной системой разархивирования в графическом процессоре. Это происходит значительно быстрее, чем в центральном процессоре. Графический процессор способен поддерживать высокие темпы разархивирования на протяжении длительного времени, в отличие от центрального процессора. В результате GPU являются главными кандидатами для будущих методов разархивирования данных.

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

Как DirectStorage улучшает игры?

Поскольку DirectStorage очень быстро обеспечивает графический процессор большим объёмом данных, игры от этого заметно выигрывают.

Если разработчики создают их с использованием DirectStorage, загрузка будет почти мгновенная. Не нужно будет долго смотреть на экран загрузки, можно начинать играть сразу.

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

Наконец, с применением DirectStorage игры становятся больше и сложнее без проблем со своевременным появлением текстур. Это позволит создавать игры нового поколения.

DirectStorage изменит игры к лучшему, если разработчики воспользуются им

Microsoft активно продвигает DirectStorage. Старые методы передачи данных является узким местом при обработке игр.

Если DirectStorage станет повсеместно распространённым стандартом, игры выйдут на новый уровень развития.

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

Об авторе

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *