На минувшей конференции WWDC 2018 представитель группы разработчиков архитектуры программного обеспечения для графических ускорителей в Apple Кароль Гасиньски (Karol Gasiński) рассказал о новых функциях операционной системы macOS Mojave для работы с виртуальной реальностью и максимальной поддержке Vive Pro.
Первыми Гасиньски раскрыл новые возможности графического API Metal, которые делают более эффективным ВР-рендеринг. Раньше, если разработчики хотели использовать рендеринг MSAA, им нужно было делать отдельные текстуры для каждого глаза, что удваивает действия при отрисовке. Если разработчик отказывается от MSAA, ему придётся выбирать другую технологию в зависимости от цели.
Mojave будет поддерживать новый тип текстур Metal под названием «2D Multisample Array», который, по словам Гасиньского, имеет «все преимущества [аналогов] без каких-либо недостатков». Он делает это, предлагая выделенный контроль пространства рендеринга, счётчик просмотров и режим сглаживания. Это означает, что разработчики могут полагаться на один макет рендеринга, который адаптируется к любой ситуации и не дублирует действия для стереокартинки.
Новая функция обработки текстур несколькими процессами позволяет разделять на потоки текстуры Metal со сложной структурой (мультисэмплированные, с глубиной или содержащие MIP-данные). Раньше это было возможно лишь с простыми 2D-текстурами. Разделить одну текстуру можно на потоки только одного графического ускорителя.
Обновление также позволяет процессу коррекции текстур под ВР-очки VR Compositor настраивать искажение для обоих глаз в одном проходе рендеринга. В целом, эти изменения упрощают конвейер рендеринга от приложения до очков:
Эти изменения будут доступны разработчикам в Mojave и, вероятно, будут поддержаны такими инструментами разработки, как Unity и Unreal Engine.
Оставшуюся часть выступления Гасиньски провёл, описывая стратегии, с помощью которых разработчики могут оптимизировать свои приложения ради эффективности рендеринга и производительности.
О его словам, разработчикам следует использовать многопоточные, разделённые командные буферы, отдельные зависимые и не зависимые от позиции нагрузки, раздельные рабочие нагрузки по частоте обновления (для использования в конфигурациях с несколькими графическими процессорами). Не повредит также убедиться, что у каждого процессора есть отдельный поток для асинхронного рендеринга.
Последнее — извлечение преимущества из конфигураций с несколькими ускорителями — особенно важно для Apple, учитывая обширное использование компанией дизайна компьютеров с двумя «видеокартами». Даже в том случае, когда MacBook использует внешний ускоритель для рендеринга, интегрированная графика может вносить свой вклад в общие задачи, если конвейер рендеринга надлежащим образом структурирован, хотя его одного недостаточно для запуска виртуальной реальности. Тем не менее, большинство ВР-приложений для ПК сегодня заточены под один графический ускоритель.
В целом, новые методы направлены на минимизацию времени бездействия графики.
Полная запись мероприятия доступна на сайте Apple вместе с очень подробной презентацией в PDF.
Не пропускайте важнейшие новости о дополненной, смешанной и виртуальной реальности — подписывайтесь на Голографику в ВК, Twitter и Facebook!
Далее: Apple представила ARKit 2.0