Как и планировалось, на конференции GDC, которая сейчас проходит в Сан-Франциско (США), Microsoft объявила о грядущем выходе API DirectX 12. Здесь наиболее интересны два факта: первые игры появятся к новогоднему сезону 2015, современные видеокарты с поддержкой DirectX 11 будут работать и с DirectX 12.
Подход очень похож на API AMD Mantle. Вместо новых красивых эффектов и функций, разработчик сконцентрировался над оптимизацией взаимодействия аппаратного и программного обеспечения. DirectX 12 призван снизить нагрузку на CPU, так как в будущем Microsoft видит четкую тенденцию появления всё более мощных GPU, а производительность центральных процессоров не будет расти такими же темпами. Ещё одно сходство между Mantle и DirectX 12 кроется в том, что Microsoft желает улучшить взаимодействие разных платформ. Так что DirectX 12 появится сразу под Windows, Xbox One и Windows Phone. AMD с Mantle тоже видит преимущество в том, что API (в том или ином виде) работает на собственных GPU компании не только на ПК, но и на современных приставках, хотя они используют свой низкоуровневый API, который не называется Mantle или DirectX. DirectX 12, в отличие от Playstation 4, может стать существенным преимуществом, когда обоим приставкам исполнится на рынке несколько лет - прирост производительности явно не помешает, тем более что к тому времени разработчики будут выжимать максимум из аппаратной начинки консолей.
Доступ к более глубоким уровням системы лучше всего проиллюстрировать двумя следующими аспектами:
Во-первых, разработчики получат наиболее прямой доступ к использованию аппаратного обеспечения, они смогут оптимизировать программное обеспечение соответствующим образом. Это позволит не только снизить нагрузку на процессор, но и сократить время вычислений и задержки. Кроме того, DirectX 12 лучше использует доступные ядра CPU - он разделяет вычисления и задачи более равномерно по доступным ядрам.
Во-вторых, разработчики под DirectX 12 получат более глубокий доступ к видеопамяти. Как и в случае Mantle, это также означает, что разработчикам следует быть более аккуратными в использовании памяти, чтобы она не переполнилась, и не проявились какие-либо побочные эффекты, негативно сказывающиеся на производительности. Впрочем, Microsoft наверняка опубликует руководства и рекомендации, которые помогут предотвратить появление ошибок. С другой стороны опытные разработчики от подобной свободы только выиграют, поскольку смогут более эффективно использовать доступную память.
Меньшая нагрузка на CPU также позволит увеличить время автономной работы мобильных устройств. Пока что сложно назвать какие-либо конкретные цифры. Также и сравнений между версиями под DirectX 11 и DirectX 12 к проведению GDC было представлено не так много. Здесь можно отметить специализированные версии 3DMark от Futuremark и Forza Motorsport 5 под Xbox One. Как указывает Microsoft, на портирование под DirectX 12 разработчикам придётся тратить не так много усилий. Ту же игру Forza Motorsport 5 один человек переписал за четыре месяца. Если за дело возьмутся несколько программистов, то на работу уйдет несколько недель или даже дней. Впрочем, то же самое AMD уже обещала в случае своего Mantle API, но мы столкнулись с задержками выхода патчей под опубликованные игры Battlefield 4 и Thief. Неизвестно, насколько эти задержки связаны с портированием игры под Mantle.
Если верить Microsoft, DirectX 12 не требует нового "железа". Но пока на эту тему высказались только Intel и NVIDIA. Если верить NVIDIA, то все видеокарты на архитектурах "Fermi", "Kepler" или "Maxwell" будут поддерживать DirectX 12. Что касается Intel, то все процессоры "Haswell" будут поддерживать DirectX 12. Какие-то игры должны появиться к новогоднему сезону 2015, что прояснит ситуацию с поддержкой. Кроме того, в ближайшие месяцы Microsoft наверняка представит дополнительную информацию.
Обновление:
NVIDIA и Intel уже прокомментировали совместимость нынешних графических процессоров с DirectX 12, не осталась в стороне и AMD. Все видеокарты с архитектурой "GCN", то есть все модели старше семейства Radeon HD 7000 и APU "Kaveri", будут совместимы с новым графическим API. Видеокарты Radeon HD 5000 и Radeon HD 6000 уже поддерживают DirectX 11, но для них поддержки DirectX 12 не заявлено.