Directx 11 сравнение. DX11 и DX12: а есть ли между ними разница? ⇡ Многопоточное исполнение инструкций драйвера

Уже 29 числа, с выходом Windows 10 , станет доступна новая версия DirectX , которая обещает увеличить производительность в играх и не только. В отличие от DirectX 11, вам не потребуется покупать новую видеокарту, и это не может не радовать. DirectX 12 обещает работу на многих устройствах: на смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One . Для последнего сама Microsoft предрекает увеличение производительности, даже по сравнению с PS4 .

Что такое DirectX?

«DirectX (от англ. direct - прямой, непосредственный) - это набор API, разработанных для решения задач, связанных с программированием под Windows . Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Windows бесплатно доступен на сайте Microsoft . Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.» (с) Wikipedia

  • DirectX 6.0 - мультитекстурирование
  • DirectX 7.0 - аппаратная поддержка преобразований, обрезания и освещения
  • DirectX 8.0 - шейдерная модель 1.1
  • DirectX 8.1 - пиксельные шейдеры 1.4 и вершинные шейдеры 1.1
  • DirectX 9.0 - шейдерная модель 2.0
  • DirectX 9.0b - пиксельные шейдеры 2.0b и вершинные шейдеры 2.0
  • DirectX 9.0c - шейдерная модель 3.0
  • DirectX 9.0L - версия DirectX 9.0 для Windows Vista
  • DirectX 10 - шейдерная модель 4.0
  • DirectX 10.1 - шейдерная модель 4.1
  • DirectX 11 - шейдерная модель 5.0
  • DirectX 11.1 – множество улучшений, среди которых увеличение гибкости программного кода и защита от переполнения буферов
  • DirectX 11.2 – разного рода улучшения, среди которых уменьшения времени ввода и улучшение качества рендера с применением карт текстур
  • DirectX 11.3 – является альтернативой DirectX 12, но без низкоуровневого API

  • Нововведения в DirectX 12

    Низкоуровневый доступ
    Поскольку ранее DirectX завоевывал рынок, Microsoft была нацелена на универсальность программного обеспечения и не давала разработчикам прямого доступа к низкоуровневым функциям видеокарты. Но теперь, благодаря новым процедурам вызова, доступ к ним открыт. Но если разработчики не используют новшества, то драйверы смогут автоматически оптимизировать их использование для решения стандартных задач.

    Многопоточная оптимизация и разгрузка CPU
    В марте 2014 года свет увидела большая (на то время) о новой версии API. Главной темой была оптимизация использования CPU , и в качестве примера были показаны результаты теста скорости вывода кадра в бенчмарке 3DMark . На скриншоте ниже можно увидеть сокращение скорости отображеня кадра в два (!) раза из-за оптимизации использования лишь CPU и более «умного» распределения ресурсов по ядрам.


    Также оптимизирована работа процессоров, имеющих более четырех ядер. Если раньше не имело смысла переплачивать за лишние ядра, если процессор покупался для игр, то теперь все поменялось.

    DirectX 11:


    DirectX 12:


    Использование нескольких GPU
    Настал праздник для геймеров, имеющих встроенное видео ядро в своих процессорах, но не слишком мощную дискретную видеокарту. DirectX 12 позволит работать одновременно не только видеокартам с технологиями SLI или CrossFire , но и связкам «дискретная + интегрированная».


    Ходят слухи об объединении дискретных видеокарт разных производителей в связки, но подтверждений этому нет, да и мы знаем, как Nvidia не любит подобные решения.


    Но и для владельцев известных связок есть приятная новость. Видеокарты работают одновременно, а не поочередности, а видеопамять ваших видеокарт суммируется. Теперь 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.


    Обязательные требования для DirectX 12:
    • Windows 10;
    • Видеокарта, совместимая с DirectX 12 API;
    • Видео драйвер, поддерживающий DirectX 12 API;

    Имея этот набор, вам останется лишь дождаться выхода игр с поддержкой DirectX 12, чтобы проверить все самому.

    Моя видеокарта поддерживает DirectX 12?

    Список видеокарт с поддержкой DirectX 12 API:
    *В этом списке предоставлены видеокарты, поддерживающие DirectX 12 API, но далеко не все из них поддерживают DirectX 12_0 и DirectX 12_1.

    • AMD Radeon™ R9 Series graphics
    • AMD Radeon™ R7 Series graphics
    • AMD Radeon™ R5 240 graphics
    • AMD Radeon™ HD 8000 Series graphics for OEM systems (HD 8570 и выше)
    • AMD Radeon™ HD 8000M Series graphics for notebooks
    • AMD Radeon™ HD 7000 Series graphics (HD 7730 и выше)
    • AMD Radeon™ HD 7000M Series graphics for notebooks (HD 7730M и выше)
    • AMD A4/A6/A8/A10-7000 Series APUs (“Kaveri”)
    • AMD A6/A8/A10 PRO-7000 Series APUs (“Kaveri”)
    • AMD E1/A4/A10 Micro-6000 Series APUs (“Mullins”)
    • AMD E1/E2/A4/A6/A8-6000 Series APUs (“Beema”)
    Nvidia
    • Nvidia Fermi (GTX 400, GTX 500)
    • Nvidia Kepler (GTX 600, GTX 700)
    • Nvidia Maxwell (GTX 700, GTX 900)
    Intel
    • Intel Haswell (HD 5000, 4600, 4400 и 4200; Iris 5200 и 5100)
    • Intel Broadwell (HD 6000, 5600, 5500 и 5300; Iris 6200 и 6100)

    AMD

    • AMD Radeon™ R9 285, 290/290X, 295X2, M295X
    • AMD Radeon™ R7 260/260X
    • AMD Radeon™ HD 8770
    • AMD Radeon™ HD 7790
    Nvidia
    • GeForce, GTX Titan X
    • GTX 980, GTX 980Ti
    • GTX 970
    • GTX 960

    Nvidia

    • 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. Улучшенная методика наиболее заметна и при расчете теней.

    Технологии принадлежит будущее, — столь много усовершенствований вобрал в себя новый интерфейс программирования. Direct3D 12 (и его кроссплатформенный коллега Vulkan) позволяет игровому движку более эффективно распоряжаться ресурсами GPU за счет прямого управления теми задачами, которые в предыдущих итерациях API выполнял драйвер или сами библиотеки Direct3D. Современные GPU в полной мере поддерживают функции рендеринга Direct3D 12 и обеспечивают эффективную интеграцию графики с вычислениями общего назначения (так называемыми асинхронными вычислениями).

    Вот только на практике API нового поколения еще далеки от реализации всего заложенного в них потенциала. Не будем приукрашивать картину, которая открылась в первой части тестирования видеокарт в Direct3D 12 и Vulkan. Фактически лишь две из игр, которые мы постоянно используем в качестве бенчмарков GPU, показали, на что способно новое ПО при должном старании разработчиков, — мы говорим о Ashes of the Singularity и DOOM. В остальных тестах при смене API можно рассчитывать в лучшем случае на умеренный рост быстродействия, и то с массой оговорок.

    Так, среди графических процессоров последних поколений только большие чипы AMD — Hawaii (Radeon R9 390X), Fiji (Radeon R9 Fury X) и Vega (Radeon RX Vega 64) — проявили большую симпатию по отношению к Direct3D 12. На быстродействие флагманской видеокарты NVIDIA (GeForce GTX 1080 Ti) программный интерфейс в среднем никак не влияет, а остальные «зеленые» процессоры работают под ним хуже, чем под старым. Наконец, Microsoft невольно выдала черную метку чипам с архитектурой Kepler и Maxwell, которые, по всей видимости, уже никогда не обретут полноценной поддержки в игровых движках под Direct3D 12.

    Слабость API нового поколения является обратной стороной их силы: «тонкие» библиотеки Direct3D 12 отдали множество функций разработчикам игровых движков, а внедрение нужных приемов программирования в массовом ПО идет с запозданием. Неудивительно, ведь в игровых компьютерах по-прежнему стоит масса видеокарт, которые в лучшем случае лишь формально совместимы с Direct3D 12 и Vulkan, поэтому мощную оптимизацию игр под новые API пока можно наблюдать лишь в отдельных проектах на основе собственных движков.

    Графические API и процессорозависимость

    Однако часть функций Direct3D 12 и Vulkan не требует от разработчиков игр особенных усилий. Сама структура конвейера этих API позволяет снизить нагрузку на центральный процессор за счет сокращения времени подготовки draw call, что особенно важно, когда на экране присутствует множество отдельных моделей [прим.: Draw call - команда, требующая создать единственную полигональную сетку (mesh)] .

    Впервые на эту проблему обратили внимание AMD и DICE, создатели проприетарного низкоуровневого интерфейса Mantle. Первым тайтлом с поддержкой Mantle стала Battlefield 4, но тогда, в 2014 году, игровая графика не была настолько богата геометрией, чтобы центральный процессор ограничивал частоту смены кадров в сбалансированной системе. Даже год спустя мы пришли к выводу (см. наше тестирование процессорозависимости), что любой современный процессор Intel с четырьмя ядрами раскрывает потенциал топовых GPU того времени.

    Но за прошедшее время обстановка поменялась: игры стали сложнее, а GPU получили многократно возросшую вычислительную мощность. CPU, напротив, развиваются достаточно медленно с точки зрения однопоточной производительности, а пятое, шестое, седьмое и так далее ядра в играх используются редко. Многие геймеры производили апгрейд с двухъядерного процессора на четырехъядерный с расчетом не менять его еще долгие годы, поэтому сейчас вопрос процессорозависимости вновь стал актуальным.

    Самый яркий, хотя и довольно экзотический пример — стратегия Ashes of the Singularity. Ее движок именно за счет быстрой отдачи draw call сильно наращивает быстродействие под Direct3D 12 и Vulkan даже при мощном центральном процессоре. Но в нашей методике есть и другие игры с богатой геометрией. В этот раз мы проведем тестирование на платформе с четырьмя ядрами и сниженной частотой CPU, а потом сравним результаты с тем, что было получено ранее при помощи высокопроизводительного процессора.

    В предыдущей части тестирования процессор нашего тестового стенда, Core i7-5960X, работал на постоянной частоте 4 ГГц при восьми активных ядрах. Для имитации более слабого CPU мы отключили половину ядер и установили тактовую частоту на отметке 2,5 ГГц.

    Честно говоря, это не очень реалистичная конфигурация для современных CPU Intel (даже младшие модели Core i5 поколений Caby Lake и Coffee Lake берут более высокие частоты при полной загрузке четырех ядер), но она вполне соответствует некоторым моделям предыдущих поколений. 1,5 ГГц — подходящая разница, чтобы наглядно показать связь версии графического API и процессорозависимости, а измерение кадровой частоты на всем спектре моделей современных CPU пусть останется задачей для следующей части нашей серии «Процессорозависимость».

    С другой стороны, мы зашли не настолько далеко, чтобы оставить два активных ядра. В современном домашнем ПК такому процессору уже не место, и некоторые игры просто не будут нормально работать на двух ядрах.

    По итогам первого тестирования мы дисквалифицировали из участников несколько видеокарт, в первую очередь GeForce GTX 970 и GTX 980 Ti, которые не годятся для игр под Direct3D 12 и Vulkan в силу архитектурных особенностей. Кроме того, были исключены бюджетные игровые видеокарты Radeon RX 560 и GeForce GTX 1050 Ti — у них попросту недостаточно мощные GPU, чтобы оптимизация API сыграла большую роль даже на слабой платформе.

    Наконец, мы нашли несколько ошибок в тестовых результатах первой части стати и приведем все данные (как при сильном, так и при слабом CPU) в обобщающих графиках и таблицах. Для того чтобы обеспечить корректное сравнение, новые результаты получены на тех же версиях драйверов (Radeon Software Crimson Adrenalin Edition 18.1.1 и GeForce Game Ready Driver 390.65), которые мы использовали в прошлый раз. Драйверы довольно старые, но, если бы мы повторили тесты на актуальных версиях, это бы не повлияло сколь-либо существенно на результаты. В конце концов, самая свежая из выбранных игр вышла еще в сентябре прошлого года, и драйверы уже содержат оптимизации для всех них. За прошедшее время каких-либо глобальных изменений в ПО, которые поднимают общее быстродействие, производители GPU не внесли.

    Тестовый стенд, методика тестирования

    Конфигурация тестовых стендов
    CPU Intel Core i7-5960X (4 ядра @ 2,5 ГГц, постоянная частота)
    Intel Core i7-5960X (8 ядер @ 4,0 ГГц, постоянная частота)
    Материнская плата ASUS RAMPAGE V EXTREME
    Оперативная память Corsair Vengeance LPX, 2133 МГц, 4 × 4 Гбайт
    ПЗУ Intel SSD 520 240 Гбайт + Crucial M550 512 Гбайт
    Блок питания Corsair AX1200i, 1200 Вт
    Система охлаждения CPU Thermalright Archon
    Корпус CoolerMaster Test Bench V1.0
    Монитор NEC EA244UHD
    Операционная система Windows 10 Pro x64
    ПО для GPU AMD
    Все видеокарты Radeon Software Crimson Adrenalin Edition 18.1.1
    ПО для GPU NVIDIA
    Все видеокарты GeForce Game Ready Driver 390.65
    Бенчмарки: игры
    Игра (в порядке даты выхода) API Настройки, метод тестирования Полноэкранное сглаживание
    1920 × 1080 / 2560 × 1440 3840 × 2160
    Rise of the Tomb Raider DirectX 11/12 Макс. качество, VXAO выкл. Встроенный бенчмарк Выкл.
    Tom Clancy’s The Division DirectX 11/12 Макс. качество, HFTS выкл. Встроенный бенчмарк SMAA 1x Ultra + TAA: Supersampling TAA: Stabilization
    DOOM OpenGL 4.5 / Vulkan Макс. качество. Миссия Foundry TSSAA 8TX Выкл.
    Deus Ex: Mankind Divided DirectX 11/12 Макс. качество. Встроенный бенчмарк Выкл.
    Battlefield 1 DirectX 11/12 Макс. качество. OCAT, начало миссии Over the Top TAA
    Ashes of the Singularity: Escalation DirectX 11/12/ Vulkan Выкл.
    Total War: WARHAMMER II, встроенный бенчмарк DirectX 11/12 Макс. качество. Встроенный бенчмарк (Battle Benchmark) Выкл.

    В тестовую обойму вошли семь игр 2016-2017 годов выпуска, среди которых шесть поддерживают API Direct3D 12 и две — Vulkan. Доподлинно известно, что все они так или иначе задействуют функцию Multi-Engine («асинхронные вычисления»). И пара слов о DOOM. Эта игра использует так называемые Shader Intrinsitc Functions — шейдеры, непосредственно исполняемые на GPU избранной архитектуры, в обход стадии компиляции из высокоуровневого кода. Только Vulkan, в отличие от OpenGL и Direct3D любой версии, дает такую возможность, и только AMD выпустила для Vulkan соответствующее расширение. Собственные Shader Intrinsics есть и у NVIDIA, но они доступны только через проприетарый интерфейс NVAPI или библиотеки GameWorks. Именно поэтому Vulkan в DOOM принес GPU AMD такой мощный прирост быстродействия, хотя не обижены и чипы NVIDIA.

    DirectX – это набор необходимых библиотек для Microsoft Windows 32 bit и 64 bit. Новый Директ Х11 предназначен для корректной работы различных компьютерных игр, также для других программ, например для проигрывания видео и звука в некоторых плеерах. Проигрыватели так же могут его использовать. Любые компьютерные игры использую 3D графику, которая реализована будет на технологии Директ Х12. Без своевременного обновления программного обеспечения технологии DirectX для компьютера, у вас может не запуститься компьютерная игра.

    Если у вас даже уже установлена эта программа, но более старой версии, то для правильной работы и отображения 3Д графики современных компьютерных игр, мы Вам рекомендуем скачать и обновить DirectX бесплатно до последней версии.

    В технологии Директ Икс имеется так же низкоуровневые функции, такие как двух мерное (2D) ускорение графики. Так же имеется поддержка различных устройств ввода, таких как джойстик, клавиатура, мышка. Имеется поддержка и аудио оборудования, для обеспечения качественного звучания. Часто, при установке игры, с ней может поставляться в комплекте DirectX 11 , так же и устаревшие версии DirectX 10 или DirectX 9.0c . Данные версии уже не актуальны и мы Вам рекомендуем обновить их до последней версии DirectX 12 . Это все вызвано тем, что DirectX для Windows 10, 8, 7 может обновляется довольно-таки часто, и необходимо следить за обновлениями. С каждой новой версией программы, добавляются новые библиотеки, новые внедренные технологии, для улучшения качества графики в компьютерных играх и не только. У каждого геймера должны быть всегда под рукой различные свежие драйвера, один из которых DirectX 11 и 12 для Windows 7, 8, 10. Так что мы Вам рекомендуем установить последнюю версию DirectX, которую Вы можете Бесплатно скачать DirectX 11 / 12 для Windows 7, 8, 10 по прямой ссылке без регистрации и смс у нас на сайт.

    Благодаря данному инсталлятору, скачать который Вы можете чуть ниже, Вы получите обновление DirectX 9.0c, 10, 11, 11.1, 12 для Windows 10, 8 и 7. Вам только потребуется подключение к интернету. Запустив Web инсталлятор, Вы сможете обновить DirectX до последней версии с официального сайта.

    Официальный релиз DirectX 12 для Windows 7, 8, 10 состоялся уже давно. Хотим обратить внимание, что DirectX 12 для Windows 10 Вам нет необходимости устанавливать, т.к он встроен в систему Виндовс 10.

    Часто пользователи не знают ответа на вопрос — как проверить версию DirectX на Windows 10, 7, 8? Для этого необходимо нажать одновременно клавиши на клавиатуре Win+R (где Win - клавиша с эмблемой Windows) или нажмите на кнопку Пуск (в Windows 10 и 8 - правый клик по «Пуск» - «Выполнить»), и в поле поиска введите dxdiag , а затем нажмите клавишу Enter. Откроется окно Средство диагностики DirectX , и в вкладке «Система» Вы увидите информацию о установленной версии DirectX.

    Список игр, поддерживающих DirectX 12, заметно увеличился. В этом материале мы рассмотрим HITMAN, Rise of the Tomb Raider и Ashes of the Singularity. Эти игры поддерживают и DirectX 11, и DirectX 12. Две из них вышли совсем недавно. Ashes of the Singularity все еще находится на стадии beta-тестирования. Эксклюзивно для Windows 10 вышла ремастеринг-версия культовой Gears of War. Совсем скоро появятся игры ААА-класса: Deus Ex: Mankind Divided, Forza Motorsport 6 Apex и Quantum Break. На только что прошедшей выставке GDC представили движок CryEngine V. Отныне все Xbox-эксклюзивы будут выходить в том числе и на ПК. Но только исключительно под Windows 10. Спасибо новой стратегии Microsoft .

    Качество

    Как я уже говорил, DirectX 12 разработан для более качественной оптимизации под современное железо. Технологии Tiled Resources, Typed UAV и Bind, входящие в состав этого API, существенно (на бумаге) экономят ресурс видеопамяти и ориентируют API на использование большего числа ядер центрального процессора. Принцип консервативной растеризации ускоряет расчет теней и фильтра MSAA. Логично, что оптимизация приведет и к улучшению качества графики, но самое главное - это все же увеличение стабильности и быстродействия.

    Давайте сравним графику DirectX 11 и DirectX 12 в HITMAN и Rise of the Tomb Raider. Ниже прикреплено несколько скриншотов в разрешении Ultra HD (осторожно, каждый файл весит 8-10 Мбайт!). Настройки качества - .

    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: