Directx 12 когда вышел
Уже 29 числа, с выходом Windows 10, станет доступна новая версия DirectX, которая обещает увеличить производительность в играх и не только. В отличие от DirectX 11, вам не потребуется покупать новую видеокарту, и это не может не радовать. DirectX 12 обещает работу на многих устройствах: на смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One. Для последнего сама Microsoft предрекает увеличение производительности, даже по сравнению с PS4.
Что такое DirectX?
«DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.» (с) Wikipedia
Нововведения в DirectX 12
Низкоуровневый доступ
Поскольку ранее DirectX завоевывал рынок, Microsoft была нацелена на универсальность программного обеспечения и не давала разработчикам прямого доступа к низкоуровневым функциям видеокарты. Но теперь, благодаря новым процедурам вызова, доступ к ним открыт. Но если разработчики не используют новшества, то драйверы смогут автоматически оптимизировать их использование для решения стандартных задач.
Многопоточная оптимизация и разгрузка CPU
В марте 2014 года свет увидела большая (на то время) порция информации о новой версии API. Главной темой была оптимизация использования CPU, и в качестве примера были показаны результаты теста скорости вывода кадра в бенчмарке 3DMark. На скриншоте ниже можно увидеть сокращение скорости отображеня кадра в два (!) раза из-за оптимизации использования лишь CPU и более «умного» распределения ресурсов по ядрам.
Также оптимизирована работа процессоров, имеющих более четырех ядер. Если раньше не имело смысла переплачивать за лишние ядра, если процессор покупался для игр, то теперь все поменялось.
Использование нескольких GPU
Настал праздник для геймеров, имеющих встроенное видео ядро в своих процессорах, но не слишком мощную дискретную видеокарту. DirectX 12 позволит работать одновременно не только видеокартам с технологиями SLI или CrossFire, но и связкам «дискретная + интегрированная».
Но и для владельцев известных связок есть приятная новость. Видеокарты работают одновременно, а не поочередности, а видеопамять ваших видеокарт суммируется. Теперь multi GPU системы имеют раздельный буфер, где доступна вся память видеоадаптера, а не общий, как раньше.
DirectX 12 и встраиваемые low-end GPU
Улучшение производительности, как и сам DirectX 12, будет доступно не только на суперсовременных игровых станциях, но и для относительно слабых встраиваемых решений. По тестам, проведенным на Surface Pro 3 с процессором Core i5, имеющим встроенное видео ядро Intel HD Graphics 4400, производительность увеличилась на 50%. Все благодаря более рациональному использованию GPU.
Использование всего потенциала eSRAM (только Xbox One)
eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Ранее использовалось специальное API для управления, но сейчас, с выходом DirectX 12, всем управляет одно API – DirectX. Данное улучшение обещает увеличение быстродействия памяти и более рациональное ее использование. Вероятно это поможет сократить, а может и вовсе избавиться, от отставания от PS4.
Обратная совместимость с DirectX 11 видеокартами
Большинство современных видеокарт, которые поддерживают DirectX 11, полностью совместимы с DirectX 12. Но, к сожалению, далеко не все смогут использовать все нововведения в новом API.
- Windows 10;
- Видеокарта, совместимая с DirectX 12 API;
- Видео драйвер, поддерживающий DirectX 12 API;
Моя видеокарта поддерживает DirectX 12?
Список видеокарт с поддержкой DirectX 12 API:
*В этом списке предоставлены видеокарты, поддерживающие DirectX 12 API, но далеко не все из них поддерживают DirectX 12_0 и DirectX 12_1.
- AMD Radeon™ R9 285, 290/290X, 295X2, M295X
- AMD Radeon™ R7 260/260X
- AMD Radeon™ HD 8770
- AMD Radeon™ HD 7790
- GeForce, GTX Titan X
- GTX 980, GTX 980Ti
- GTX 970
- GTX 960
- GeForce, GTX Titan X
- GTX 980, GTX 980Ti
- GTX 970
- GTX 960
DirectX 12_0
Только GPU или архитектуры, специально разработанные для поддержки DirectX 12, будут поддерживать уровень функций DirectX 12_0, который содержит ряд новых технологий. Среди них – тайловые ресурсы Tiled Resources. В принципе, тайловые ресурсы известны ещё по DirectX 11, они отличаются высокой эффективностью по используемой памяти, а также могут значительно улучшить уровень детализации. С помощью мелких текстур в многократных ориентациях можно симулировать крупные текстуры. Кроме того, существенно экономится память. А качество картинки приносить в жертву не придётся.
В примере приводится классическая текстура Texture 3D под DirectX 11 с разрешением 1.200 x 600 x 600 пикселей с 32-битным цветом – она занимает 1,6 Гбайт. С тем же качеством можно использовать тайловую текстуру Tiled Texture 3D через многократные повторения – она будет иметь разрешение 32 x 32 x 16 пикселей с 32-битным цветом. Размер при этом будет составлять 156 Мбайт. В одном из примеров приведена сцена рендеринга, в которой тайловая 3D-текстура используется 2.500 раз. Для создания и симуляции некоторых материалов в 3D добавляется ещё одно информационное поле. Им может быть, например, значение прозрачности или вязкости. Такой подход позволяет лучше симулировать жидкости и газы.
Ещё один тип тайловых ресрусов – объёмные тайловые ресурсы (Volume Tiles Resources), однако они относятся к уровню функций уже не DirectX 12_0, а 12_1.
К уровню DirectX 12_0 относится Typed UAV и новая модель Bind, которые ориентируют API на большее число ядер CPU, что обеспечивает более широкую параллелизацию и производительность.
DirectX 12_1
Ещё на шаг дальше Microsoft и разработчики GPU пошли с DirectX 12_1. Но данный урвоень функций поддерживают только самые новейшие GPU. К ним относятся все GPU на основе 2-го поколения "Mawell". Одна из новых технологий – консервативная растеризация (Conservative Rasterization). Она используется для фильтра динамического суперразрешения (Dynamic Super Resolution) и сглаживания Multiframe Sampled Anti-Aliasing.
При растеризации небольшого объекта/пикселя в некоторых случаях лучше учитывать все покрытые точки семплирования, пусть даже частично. Также консервативная растеризация важна при вокселизации VXGI. Улучшенная методика наиболее заметна и при расчете теней.
Видео демонстрации DirectX 12:
Заключение
Все выглядит очень многообещающе. Для AMD в частности. AMD славится своими шести и восьми-ядерными процессорами – улучшена поддержка многоядерных процессоров. AMD имеет процессоры с хорошими графическими ядрами (APU) – мощности встроенной и дискеретной графики суммируются. Улучшена поддержка высоких разрешений, в которых даже не самые новые видеокарты от AMD и так хорошо себя чувствуют. Графика от Nvidia или Intel тоже не останется в дураках, все получат прирост производительности. Но на самом деле, больше от этого выиграем мы – игроки.
Остается надеяться, что игры с ужасной оптимизацией будут выходить реже, чем сейчас, а железо не придется апгрейдить так часто. Мечты-мечты :)
//Статья не является копипастой. Вся собранная тут информация была получена из общедоступных источников, обработана и описана в этой статье. Весь заимствованный контент имеет под собой ссылку на первоисточник.
Вслед за презентацией консоли Xbox Series X компания Microsoft представила свежее обновление своего API DirectX — DirectX 12 Ultimate. Если кратко, то в новой версии Microsoft объединила DirectX 12 и DirectX Raytracing (DXR) 1.1, а также добавила к официальным спецификациям некоторые расширения и функции. А ещё был обновлён логотип — Microsoft вернулась к римским цифрам.
А теперь давайте подробнее пройдёмся по каждому пункту. В состав DirectX 12 Ultimate вошло всё то, что уже было в составе DirectX 12_1, а также все составляющие DXR. Поэтому на данный момент отнюдь не каждая видеокарта сможет похвастаться поддержкой DirectX 12 Ultimate. Фактически, это могут себе позволить только видеокарты NVIDIA GeForce RTX 20-й серии. А вот у AMD поддержка новой версии API появится лишь в следующем поколении графических процессоров на архитектуре RDNA 2.
DirectX Raytracing 1.1 включает небольшие обновления изначального API DXR. Новая версия включает такие новые методы, как Inline Raytracing и непрямое выполнение лучей. Кажется, здесь разработчикам предлагается фактически то же самое, что и в вышедшем недавно Vulkan RT, то есть возможность запуска расчёта трассировки одного луча из шейдера, а не большой группы лучей. По сути, решение трассировки лучей здесь происходит прямо во время её выполнения, а не по заранее заданным направлениям, что требует меньше ресурсов.
Также частью DirectX 12 Ultimate стали такие функции, как Variable Rate Shading 2 (VRS 2), Mesh Shaders и Sampler Feedback. Вкратце напомним, что технология VRS обеспечивает прирост производительности за счёт выполнения более простых затенений в менее важных областях сцены. Mesh Shaders раньше было расширением NVIDIA, которое позволяло более эффективно обрабатывать большие объёмы данных. Наконец, Sampler Feedback позволяет более эффективно расходовать видеопамять — потенциально, «потребление» памяти игрой можно сократить до 10 % от обычного значения.
Ключевая цель DirectX 12 Ultimate заключается в том, чтобы предоставить разработчикам единую платформу для ПК и будущей Xbox Series X. Последняя, напомним, как раз станет носителем графического процессора с архитектурой AMD RDNA 2, так что уже довольно скоро не только NVIDIA сможет похвастаться графическими процессорами с поддержкой DirectX 12 Ultimate.
Для пользователей появление DirectX 12 Ultimate в первую очередь должно упростить выбор видеокарт. Если ускоритель поддерживает новую версию API, это означает, что он поддерживает полный набор современных функций, включая трассировку лучей, VRS и так далее. К тому же, пользователь будет знать, что видеокарта с DirectX 12 Ultimate будет иметь как минимум те же возможности, что и Xbox Series X. И хотя пока игр с поддержкой всех возможностей новой версии API нет, со временем они появятся, особенно с выходом новой консоли. Кстати, хотя PlayStation 5 тоже получит графику RDNA 2, у неё поддержки нового API не будет.
Microsoft анонсировала DirectX 12 в 2014 году, но никакой информации по совместимости тогда не предоставила. На момент анонса новой версии DirectX, последней версией Windows была Windows 8. Релиз Windows 10 состоялся только в 2015 году.
Изначально предполагалось, что Microsoft искусственно ограничит поддержку DirectX 12 и реализует ее только в Windows 8 и последующей версии Windows (тогда считалось, что это будет Windows 9).
В конце 2014 года Microsoft объявила, что Windows 10 действительно будет поставляться с поддержкой DirectX 12. Появились мнения, что новая версия DirectX не будет доступна для более ранних версий Windows. Эта информация была официально подтверждена на портале поддержки Microsoft. Для систем Windows 7 были доступны только DirectX 11.0 и 11.1, а для Windows 8.1 – DirectX 11.1 и 11.2.
Четыре года спустя, в начале 2019 года Microsoft неожиданно объявила о своих планах добавить поддержку DirectX 12 для ряда игр в Windows 7. Разработчики игр попросили Редмонд интегрировать DirectX 12 в Windows 7, чтобы воспользоваться дополнительными возможностями и снизить издержки на разработку.
Microsoft решила пойти навстречу разработчикам и приступила к портированию среды выполнения Direct3D 12 в Windows 7. Компания Blizzard, разработчик World of Warcraft и других популярных проектов, первой добавила поддержку DirectX 12 для своих игр в Windows 7. Игроки World of Warcraft получили возможность наслаждаться более высокой частотой кадров и другими улучшениями, связанными с использованием DirectX 12.
Первоначально возможности переноса игр DirectX 12 на устройства с Windows 7 были ограничены. Microsoft работала лишь с несколькими игровыми студиями, из которых в официальных анонсах упоминалась только Blizzard.
В августе 2019 года Microsoft выпустила новое руководство по разработке, чтобы позволить разработчикам запускать свои DirectX 12 игры в Windows 7.
Чтобы помочь создателям игр, мы публикуем следующие ресурсы, позволяющие разработчикам запускать свои игровые проекты DirectX 12 в Windows 7.
Чтобы подготовить свои игры DirectX 12 к запуску в Windows 7, разработчики могут ознакомиться с руководством «Porting D3D12 games to Windows 7». Данный материал разбит на несколько глав. В начале руководства приводится информация по файлам и драйверам, которые требуются для настройки среды разработки и тестовых машин. В других главах рассказывается, как настроить DirectX 12 игры для ПК Windows 7, приводятся советы по оптимизации и рекомендации по подготовке релиза.
Никогда не поздно?
Самый главный вопрос, который сразу же назревает: «Почему именно сейчас?». В январе 2020 года Windows 7 достигнет окончания срока поддержки и перестанет получать какие-либо обновления. Хотя компании могут на платной основе продлить поддержку до трех лет, они не являются основной целевой аудиторией игровых проектов.
С другой стороны, системы Windows 7 мгновенно не исчезнут в январе 2020 года. По аналогии с Windows XP, могут пройти годы, прежде чем рыночная доля операционной системы упадет ниже 10 процентов. Поэтому разработчики игр могут продолжать поддерживать Windows 7 даже после официального прекращения поддержки системы.
В любом случае, время для данного нововведения выбрано не самое удачное. Понятно, что изначально Microsoft хотела мотивировать геймеров переходить на Windows 10, сделав поддержку DirectX 12 эксклюзивной в своей новой ОС. Напомним, что прошлая аналогичная попытка в случае с Windows Vista и DirectX 10 Vista не сработала. Геймеры и разработчики игр преимущественно проигнорировали DirectX 10.
Компания Microsoft несколько часов назад представила DirectX 12 Ultimate. Повторяя слова пресс-релиза, это кульминация лучшей графической технологии, которую Microsoft когда-либо представляла.
Когда геймеры приобретают графическое оборудование для ПК с логотипом DX12 Ultimate или Xbox Series X, они могут быть уверенными, что их оборудование гарантированно поддержит все функции графического оборудования всего поколения, включая DirectX Raytracing, затенение с переменной частотой, Mesh Shaders и Sampler Feedback.
Проще говоря, DirectX 12 Ultimate включает в себя все актуальные наработки в области компьютерных графических систем. Видеокарты GeForce RTX уже полностью поддерживают DirectX 12 Ultimate. Грядущие адаптеры AMD на архитектуре RDNA2 также будут поддерживать этот API и, конечно, его поддерживает и Xbox Series X. При этом владельцам всех остальных 3D-карт переживать не стоит, так как появление DirectX 12 Ultimate никак не повлияет на совместимость этих устройств с будущими играми.
Из особенностей DX12 Ultimate можно отметить API DirectX Raytracing (DXR) 1.1 — обновлённую версию DXR 1.0. Nvidia утверждает, что с приходом DX12 Ultimate игр с трассировкой лучей станет ещё больше.
Что касается остального, кратко напомним, о чём идёт речь. Технология переменной частоты затенения (VRS — variable rate shading) дает возможность динамически изменять разрешение при затенении пикселей на разных участках кадра для увеличения производительности.
Mesh Shaders — это целая новая шейдерная модель, которая ответственна сразу за всю работу над геометрией, вершинами, тесселяцией и так далее.
Sampler Feedback, как говорит Microsoft, обеспечивает лучшее визуальное качество, более короткое время загрузки, предоставляя подробную информацию, позволяющую разработчикам загружать текстуры только при необходимости.
Читайте также: