Разработчикам приложений уже давно требовался более легкий и эффективный API для прямого доступа к аппаратным ресурсами. Помимо общего улучшения эффективности, которое обеспечивается непрерывным совершенствованием существующих версий API, приложениям нового поколения необходимо выжать максимум производительности из потенциала многоядерных систем. Кроме того, разработчики хотят напрямую использовать преимущества передовых аппаратных возможностей GPU, доступ к которым в данный момент ограничен в целях защиты от ошибок. DirectX 12 был разработан с нуля, чтобы обеспечить создание соответствующей инфраструктуры для разработки приложений нового поколения.
Выступая перед аудиторией, насчитывающей порядка 500 разработчиков и журналистов, Ануж Гозалия (Anuj Gosalia), менеджер по разработке DirectX в Microsoft, представил DX12 как совместный проект производителей аппаратного обеспечения, разработчиков игр и команды Microsoft.
Сотрудничество NVIDIA и Microsoft по DirectX 12 началось более четырех лет назад с обсуждения подходов к уменьшению затрат на управление ресурсами GPU. В течение последнего года NVIDIA плотно работала с командой DirectX, чтобы представить на GDC рабочую версию DX12.
Г-н Гозалия продемонстрировал работу нового API на примере технологической демонстрации на базе игры Forza, изначально созданной для Xbox One. Демонстрация была запущена на ПК, оснащенном NVIDIA GeForce GTX Titan Black. Кроме того, команда софтверных инженеров NVIDIA предоставила студиям разработки игр специальный драйвер для DX12, который не только позволит получить отзывы по новой версии API, но и дает возможность разрабатывать DX12 игры уже сейчас.
Критическим фактором принятия любого нового API является размер доступного рынка. В прошлом, распространение новых возможностей было ограничено отсутствием поддержки на рынке консолей, а также отсутствием поддержки этих возможностей в популярных версиях ОС Windows. DX12 позволит обеспечить беспрецедентное сближение интерфейсов API и широту поддержки. DX12 будет доступен как на ПК, так и на XBox One, планшетах и даже телефонах.
NVIDIA обеспечит поддержку DX12 во всех ОС Microsoft. Сегодня свыше 70% игровых ПК поддерживают DX11. NVIDIA будет поддерживать API DX12 на всех отгруженных на рынок GPU, поддерживающих DX11 (GPU на базе архитектур Fermi, Kepler и Maxwell). С учетом более чем 50%-ной доли NVIDIA на рынке игровых систем на базе DX11 (в случае дискретной графики - 65%), одна только NVIDIA уже сможет обеспечить разработчикам игр доступ к бОльшей части потенциальных пользователей нового API.
Истоки DX12 можно увидеть в тенденциях развития технологий. В то время как производительность GPU стремительно росла, потенциал развития одноядерных CPU был ограничен энергопотреблением. Многоядерные CPU обеспечили движение вперед, однако их пиковая производительность все еще не дотягивала до пиковой производительности GPU. Одновременно приложения стали использовать параллелизм на уровне задач, используя сложные планировщики для масштабирования производительности при увеличении количества ядер CPU. Это вызвало необходимость в создании API, который бы масштабировался соответственно изменению числа ядер.
Производительность GPU можно реализовывать в 3-х направлениях: более сложная обработка пикселей, отрисовка большего количества пикселей и увеличение количества объектов. В нынешней ситуации мы практически выжали максимум из GPU по количеству и качеству пикселей. С выпуском DX12 мы хотим сделать изображение визуально значительно более богатым за счет значительного сокращения ресурсов CPU, которые тратятся внутри API. Традиционно, памятью, состоянием и синхронизацией управляли операционная система и драйверы. Однако недостаток информации о задачах, решаемых приложениями, приводил к неэффективному использованию CPU. DX12 позволяет приложениям напрямую управлять ресурсами и состоянием и выполнять необходимую синхронизацию. В результате, разработчики передовых приложений смогут эффективно управлять GPU, используя знания о внутренней работе своей собственной игры.
Сегодняшний анонс нацелен в первую очередь на демонстрацию подхода к формированию новой версии графического API, его модели. Помимо описанной сегодня новой модели работы драйверов/приложений, в будущих версиях Direct3D появятся новые возможности рендеринга. Представленный на GDC проект – это только часть работы, проделанной в процессе подготовки к будущим релизам. NVIDIA и Microsoft продолжат и дальше серьезно инвестировать в будущее PC-игр.