Microsoft анонсировала новую функцию, которая сократит время начальной загрузки в играх, называемую Advanced Shader Delivery. Согласно блогу разработчиков DirectX, функция перенесёт компиляцию шейдеров с устройства пользователя в облако, что позволит загружать необходимые файлы непосредственно на устройство для кэширования.
Источник изображений: Microsoft
Помимо значительного ускорения запуска игры — Microsoft в качестве примера приводит игру Avowed, где время загрузки было сокращено на 85 % — функция Advanced Shader Delivery также экономит заряд батареи и вычислительную мощность ноутбуков и портативных игровых устройств, отмечает компания.
Компиляция шейдеров традиционно выполняется на устройстве, поскольку процесс учитывает настройки игры, а также видеокарту и версию драйвера, которые используются в системе. Это означает, что производительность компиляции шейдеров зависит от установленного на устройство пользователя программного и аппаратного обеспечения. Учитывая практически бесконечное количество вариаций систем, разработчикам было практически невозможно предварительно скомпилировать шейдеры для каждого устройства. Однако Microsoft изменила подход к компиляции шейдеров, создав новый формат под названием State Object Database (SODB).
Компания собирает данные шейдеров из игры и упаковывает их в SODB. Разработчики DirectX совместно с производителями видеокарт разработали метод разделения компилятора шейдеров от графического драйвера, что позволило объединить его с SODB и создать базу данных предкомпилированных шейдеров (PSDB). При загрузке игры через приложение Xbox PC приложение определит конфигурацию системы пользователя и подтянет соответствующую базу PSDB. Таким образом, при первом запуске игры приложение обнаружит