Немного теории
Для начала повторим вкратце основы о DirectX 12 из всего того, что мы рассказывали вам в своих многочисленных обзорах. Графические API обновляются довольно редко, и до сих пор большинство игр использует еще Direct3D 11 (D3D11 для краткости), которому уже больше 10 лет. Но все чаще игровые разработчики начинают использовать Direct3D 12 и Vulkan, которые появились после активного продвижения собственного API Mantle компанией AMD. Указанные API используют схожий подход по улучшению эффективности использования графических процессоров, но являются универсальными для всех современных GPU. В рамках сегодняшнего обзора мы не будем рассматривать Vulkan, но в целом этот API очень схож с D3D12 в своей основе.
Увы, при всех преимуществах новой версии DirectX, темп освоения новых возможностей разработчиками не так высок, как бы всем хотелось. До сих пор чаще всего используется DirectX 11 в виде основного API, и лишь при поддержке производителей GPU (в основном — AMD, по понятным причинам) они все же продавливаются в игры. Сначала поддержка Direct3D 12 во многих играх появлялась в экспериментальном виде, как проба пера, и частенько она не давала прироста производительности вообще, или он был крайне незначительный.
Если попытаться очень вкратце описать преимущества нового API, то главные его нововведения заключаются в асинхронных вычислениях, о которых мы поговорим ниже, и сниженной нагрузке на CPU из-за более быстрой подготовки вызовов функций отрисовки draw calls (команды, результатом которых является отрисовка полигональной сетки с соответствующими атрибутами). Каждый объект и персонаж в кадре требует исполнения нескольких таких функций отрисовки, и при большом их количестве в D3D11 довольно сильно загружается работой центральный процессор системы.
Кое-какую работу по оптимизации этой работы делает видеодрайвер (и у Nvidia он весьма эффективен, а вот D3D11-драйвер AMD справляется с оптимизацией похуже), но в любом случае, более быстрая подготовка вызовов draw calls в D3D12 может значительно снизить загрузку CPU и время простоя GPU, и в результате мы получим более высокую частоту кадров или возможность отрисовки большего количества геометрии при прочих равных. Многопоточная оптимизация для CPU в условиях D3D12 также работает куда более эффективно.
Так происходит потому, что прослойка API при управлении работой графического процессора в D3D12 стала значительно тоньше, и определенная работа была переложена с API на игровой движок, в том числе и менеджмент ресурсов. С одной стороны, это улучшает возможности по оптимизации производительности под конкретные запросы игры, с другой — увеличивает требования к знаниям и способностям игровых программистов. В случае D3D12 им приходится заниматься широким кругом задач, которыми они с D3D11 вообще не занимались. Учет особенностей разных графических архитектур и менеджмент ресурсов у всех получается по-разному, поэтому толк от D3D12 на практике есть не всегда.
Также в D3D12 были внедрены и некоторые дополнительные функции, о которых мы многократно рассказывали в своих материалах, посвященных новым графическим процессорам: консервативная растеризация, тайловые ресурсы, Raster Order Views, переменная частота затенения и другие. Пусть они кажутся не такими значимыми, как внедрение различных типов шейдеров в предыдущих версиях Direct3D, но они дают возможность или улучшить некоторые эффекты или реализовать совершенно новые. Большинство этих возможностей внедрены скорее для повышения эффективности рендеринга в уже существующих алгоритмах, но есть и кое-что новое и очень полезное, особенно для графических процессоров компании AMD.
Речь идет об асинхронных вычислениях. Современные графические процессоры состоят из большого количества различных исполнительных блоков, которые умеют исполнять разные программы, далеко не только графические. В частности, можно вспомнить давно известное аппаратное ускорение физических эффектов на GPU при помощи PhysX и различные фильтры постобработки, в том числе сложные алгоритмы имитации глобального освещения и затенения. Все это выполняется на GPU, и графические и неграфические вычисления вполне могут исполняться параллельно во многих случаях. Именно одновременное исполнение нескольких разных очередей инструкций и называется асинхронными вычислениями.
В качестве примера таких задач, которые можно исполнять параллельно, можно привести обновление карт теней или какие-то сложные алгоритмы постфильтрации — и чем сложнее математические вычисления в них, тем лучше. В последнее время к списку возможных нагрузок для асинхронных вычислений добавилась и часть работы при трассировке лучей, что также помогает повысить эффективность использования имеющихся у GPU ресурсов.
Если D3D11 предусматривает одну очередь инструкций только для графики, то новая версия API позволяет создать несколько отдельных очередей графических команд и других типов вычислений. Команды, исполняемые в разных очередях, могут быть зависимыми, и исполнение инструкций в одной из них может быть остановлено до получения результата из соседней, но они все равно исполняются вместе. Именно такой подход позволяет повысить эффективность использования имеющихся исполнительных блоков, что особенно полезно для графических процессоров AMD архитектуры GCN, которые несколько труднее загрузить работой на 100% их возможностей. Асинхронное исполнение помогает приблизиться к этому.
С графическими процессорами Nvidia дело обстоит сложнее. Часть чипов архитектуры Kepler (старшие модели) хоть и умеют запускать параллельные потоки с вычислениями, но это требует ручной оптимизации в каждом конкретном случае, имеет множество ограничений и в целом работает не слишком эффективно. В Maxwell второго поколения поддержку асинхронных вычислений улучшили, но некоторые ограничения все равно остались — динамическое распределение групп мультипроцессоров SM сделано сложно и недостаточно эффективно. Так что в играх с поддержкой D3D12 на этих GPU вряд ли получится какое-то ускорение от асинхронных вычислений, а чаще всего эта возможность вообще заблокирована в драйвере и открывается под каждое конкретное приложение.
Но в архитектуре Pascal многое изменилось, эти GPU могут распределять ресурсы мультипроцессоров между очередями команд динамически, и хотя смена контекста приводит к большой потере времени, возможности асинхронных вычислений в этом случае все равно не такие гибкие и эффективные, как в случае архитектуры GCN от конкурента. Все это привело к тому, что новые возможности используются не всеми игровыми разработчиками, ведь доля Nvidia на рынке игровых видеокарт для ПК выше. Но из-за использования графических ядер архитектуры GCN в консолях и помощи разработчикам игр от AMD, такая поддержка появляется во все большем количестве игр. Кроме этого, в последних чипах семейства Turing от Nvidia были устранены все недостатки предыдущих GPU компании, связанные с асинхронными вычислениями и они справляются с ними не хуже конкурента.
Вроде бы все наконец-то хорошо, но увы — даже объявленная поддержка D3D12 еще не значит, что игрой используются все новые функции этого API, не говоря уже о разной степени оптимизации кода, которой теперь в большей мере занимаются именно разработчики игр. В частности, менеджмент ресурсов (геометрии, текстур, буферов и т. п.) в новой версии API делается разработчиками игр самостоятельно, из-за этого иногда возникает больше проблем, чем это было с D3D11. Кроме этого, требования к объему видеопамяти у D3D12-версий чаще всего выше, также увеличена возможность появления ошибок и артефактов изображения. В качестве примера можно взять игру The Division 2, которая в D3D12-режиме при малейшей нехватке видеопамяти сразу же начинает сыпать артефактами, хотя эти же видеокарты с таким же объемом памяти прекрасно работают в D3D11-режиме.
Так, версия GeForce GTX 1060 с 3 ГБ видеопамяти в Full HD-разрешении при высоких настройках качества и использовании D3D11 показывает более чем 60 FPS, но переключение на DX12 приносит падение производительности вдвое — почти до 30 FPS. Именно менеджмент ресурсов, за который теперь отвечают разработчики игр, и привел к тому, что в D3D12 ей не хватает 3 ГБ видеопамяти. Разница между D3D11 и D3D12 именно в том, что в первом случае менеджментом ресурсов занимается API и видеодрайвер, а во втором — исключительно игровой код, написанный программистами конкретного проекта.
Эти недостатки не умаляют прелестей новой версии API, которая способна одним повышением эффективности рендеринга дать возможность увеличить количество и геометрическую сложность объектов в сцене, повысить качество эффектов и принести совершенно новые (чего стоит одна только трассировка лучей). Но делать исключительно D3D12-движок пока что никто не решается, так как устаревших видеокарт у пользователей еще довольно много, и чаще всего игры дают возможность выбора между D3D11 и D3D12. И зачастую они не будут выглядеть лучше в случае выбора более свежей версии API, а просто повысится производительность рендеринга, в лучшем случае. Сегодня мы попробуем разобраться, насколько полезно применение Direct3D 12 в современных играх.
Тестовый стенд и условия тестирования
- Компьютер на базе процессора AMD Ryzen:
- процессор AMD Ryzen 7 1700 (3,8 ГГц);
- система охлаждения Noctua NH-U12S SE-AM4;
- системная плата MSI X370 XPower Gaming Titanium (AMD X370);
- оперативная память GeIL Evo X DDR4-3200 (16 ГБ);
- накопитель SSD Corsair Force LE (480 ГБ);
- блок питания Corsair RM850i (850 Вт);
- операционная система Windows 10 Pro (64-бит);
- монитор Samsung U28D590D (28″, 3840×2160);
- утилита MSI Afterburner 4.6.1
Для того, чтобы сравнение видеокарт AMD и Nvidia было максимально корректным, мы взяли по одной видеокарте среднего уровня из предыдущего поколения: AMD Radeon RX 580 (8 ГБ) и Nvidia GeForce GTX 1060 (6 ГБ). А для того, чтобы проверить, не улучшился ли прирост от новой для D3D12 функциональности в графической архитектуре Turing, мы дополнительно протестировали еще и топовую Nvidia GeForce GTX 2080 Ti. Для всех видеокарт использовались последние версии драйверов, вышедшие на момент проведения тестов.
Так как прирост от использования новой версии API по опыту наших игровых тестов получается большим в режиме, когда скорость рендеринга ограничена CPU, то мы протестировали видеокарты сразу в двух режимах: при разрешении 1920×1080 и средних настройках качества (условно — ограниченный производительностью процессора режим) и при разрешении 2560×1440 и максимальных настройках качества (условно — режим, ограниченный производительностью видеокарты). И пусть GeForce GTX 2080 Ti даже во втором режиме частенько упирается в CPU, для основной пары сравниваемых видеокарт среднего ценового диапазона эти названия соответствуют условиям.
Тестирование производительности
Мы протестировали дюжину игр, в которых есть возможность переключения между рендерерами, использующими Direct3D 11 и Direct3D 12. Vulkan в этот раз не рассматривали, так как это все-таки иной API и напрямую сравнивать их было бы не совсем корректно. Сегодня же наша основная цель состоит в том, чтобы понять, какие преимущества (или наоборот) на практике дает использование более новой версии графического API от Microsoft для разных графических процессоров.
В список игровых проектов вошли только те игры, в которых есть встроенные бенчмарки — тестировать производительность в данном случае нужно точно, ведь при небольшой разнице в производительности, точность измерения и повторяемость нужно обеспечить максимально возможные. И еще — в этот раз мы приводим только средние показатели частоты кадров, а исследование минимальных показателей, да и вообще времени рендеринга кадров и их стабильности — дело отдельного материала. Там тоже будет много интересного.
Ashes of the Singularity: Escalation
Эта игра была одним из примеров хорошей оптимизации для D3D12 во время своего выхода, и с самого начала она отлично работала на видеокартах Radeon, а вот на GeForce дела были похуже. Но с того времени многое изменилось, теперь и графические процессоры Nvidia отлично с ней справляются. Видимо, из-за какой-то программной ошибки, Radeon RX 580 в наших условиях не получил большого прироста от перехода к D3D12, мы перепроверяли результат не один раз.
Зато обе видеокарты GeForce серьезно ускоряются именно в D3D12-версии игры — на 23% и 33% для старшей и младшей моделей. Но хорошо видно, что использование D3D12 для разгрузки CPU — не панацея, обе видеокарты остались ограничены мощностью центрального процессора. D3D11-видеодрайвер Nvidia оптимизирован довольно неплохо, но и конкурент им не сильно уступает в случае этой игры.
В более тяжелых для графических процессоров условиях, разница между версиями графического API ожидаемо снизилась, особенно для младшей пары видеокарт, но прирост в 10%-12% все же есть для среднебюджетных GPU обоих производителей. Старшая же GeForce RTX 2080 Ti даже в таких условиях частично ограничена мощностью CPU и получает от D3D12-рендерера заметное преимущество. Получается, что D3D12 полезнее именно для систем с мощными GPU.
Civilization VI
Похоже, что игра не слишком хорошо оптимизирована в ее D3D12-части, но еще хуже работает Radeon RX 580 в D3D11-режиме. Вероятно, в компании AMD решили, что все будут использовать D3D12 в случае Civilization VI (на диаграммах в названии игры опечатка) и просто незачем заморачиваться оптимизацией для младшей версии API. Наверное, смысл в этом есть, но уж очень велика разница в частоте кадров — почти двукратная.
Обе видеокарты GeForce в D3D11-режиме уперлись в производительность CPU, но старшая все же показала видимое ускорение порядка 14% при переходе к более свежей версии D3D, а вот младшая GTX 1060 в обоих режимах показывает очень близкий результат — судя по всему, D3D11-драйвер Nvidia отлично оптимизирован для этой игры.
В гораздо более тяжелых условиях с применением мультисэмплинга, Radeon RX 580 все еще получает некоторый прирост от новой версии API, но он уже значительно меньше. А вот что касается прямого конкурента этой модели — GeForce GTX 1060, то она в режиме D3D12 сдает позиции, так что на ней включать D3D12-рендерер не имеет смысла. Скорее всего, это связано с большим потреблением видеопамяти в D3D12-режиме, ведь объем VRAM у этой модели — 6 ГБ против 8 ГБ у Radeon.
Заметно более мощная и дорогая модель GeForce GTX 2080 Ti получает прирост производительности при переходе от D3D11 к D3D12, аналогичный тому, что было у (условного) конкурента от AMD, а видеопамяти у нее еще больше, так что повышенные требования к ее объему не сказываются негативно на скорости рендеринга в игре Civilization VI. Подтверждаем вывод, что больше всего смысла в D3D12 именно в случае самого мощного GPU.
Deus Ex: Mankind Divided
Еще одна игра, к созданию и оптимизации которой приложила руку компания AMD, поэтому она отлично работает на Radeon RX 580 и не очень хорошо — на обеих GeForce. Решение AMD стало единственным, которое обеспечивает прирост в режиме D3D12, хоть и довольно небольшой. Производительность рендеринга почти полностью зависит от GPU, поэтому и прирост низкий. Обе видеокарты Nvidia не просто не получают его, но и серьезно уступают себе же при использовании нового API — для GeForce RTX 2080 Ti падение скорости составило аж 24%, младшая же модель показала близкие результаты в обоих режимах.
В более сложном для GPU режиме ультра-настроек баланс загрузки сместился в сторону GPU, и разница между D3D11 и D3D12 уменьшилась, хотя знак остался тем же: Radeon RX 580 быстрее на пару-тройку процентов, GeForce GTX 1060 медленнее на 6%, а старшая видеокарта Nvidia семейства Turing и вовсе уступает себе же в D3D11-варианте уже 12%. Яркий пример игры, в которой польза от D3D12 есть только для видеокарт AMD. Это и неудивительно, так как разработчики игры с ними очень плотно сотрудничали.
Hitman 1
Что касается очередного проекта — Hitman 1, то эта игра в режиме ограничения производительности центральным процессором работает на всех представленных видеокартах абсолютно одинаково, обеспечивая 110-111 FPS в D3D11-режиме и 118-121 FPS в D3D12. Прирост от нового API есть на всех видеокартах и он составляет порядка 7%-9%, но похоже, что более интересным будет сравнение в более тяжелом для GPU режиме.
Похоже, что толк от более новой версии D3D в случае этой игры есть только при ограничении скорости рендеринга мощностью CPU, как это получилось и в этом случае для GeForce RTX 2080 Ti, которая ускорилась аж на 18% при включении D3D12-рендерера. А вот две младшие видеокарты от AMD и Nvidia показали практически идентичный результат в обоих режимах. Вывод все тот же — чем мощнее GPU, тем больше прирост от D3D12, так как скорость чаще упирается в CPU.
Hitman 2
Следующая игра серии сильнее нагружает графические процессоры, поэтому скорость рендеринга в ней не так сильно упирается в возможности CPU. Хотя некоторое ограничение есть, в D3D11-режиме все видеокарты близки. А вот при использовании D3D12 выделяется старшая видеокарта Nvidia, она одна получила прирост от более новой версии Direct3D, хоть и небольшой.
Удивительна разница между D3D11 и D3D12 для Radeon RX 580 и GeForce GTX 1060 — хотя она отрицательная для пары представленных в сравнении GPU среднего уровня, но больше всего от включения нового API пострадал почему-то Radeon, хотя куда чаще бывает наоборот. Посмотрим, что будет при увеличении нагрузки на графику.
В общем и целом, более тяжелые условия для GPU не принесли ничего нового, диаграмма схожа с предыдущей, за исключением того, что топовый Turing сильно вырвался вперед по абсолютным показателям. Парочка среднебюджетных Radeon RX 580 и GeForce GTX 1060 очень близка друг к другу в обоих режимах, решение AMD совсем чуть-чуть впереди, и для обоих нет смысла в D3D12, так как этот режим дает лишь падение скорости. А вот старшая видеокарта семейства GeForce RTX все еще получает прирост, упираясь в CPU, пусть уже и несколько меньше.
F1 2018
Игры от компании Codemasters под официальной лицензией Формулы 1 выходят постоянно, но они мало меняются год от года с графической точки зрения. Впрочем, F1 2018 стала первой, в которой появилась бета-поддержка Direct3D12, и мы этим воспользовались. Похоже, что D3D11-драйвер у AMD не очень хорошо оптимизирован и для этой игры, потому что прирост от включения D3D12 получился более чем на 50%. А вот для Nvidia разница составила всего лишь 9% и 2% для GTX 1060 и RTX 2080 Ti, соответственно, но тоже в пользу нового API.
Зато в более тяжелом режиме ситуация совершенно иная. Младший представитель Nvidia не получает от включения D3D12 никаких преимуществ, а Radeon RX 580 довольствуется 10% прироста. Примерно такая же разница для двух режимов с разными графическими API и для GeForce RTX 2080 Ti, так что в случае тяжелого для GPU режима все похоже на ничью.
Rise of the Tomb Raider
Хорошо видно, что более старая игра приключений Лары Крофт не слишком хорошо оптимизирована для Direct3D12, разница между двумя версиями API составляет лишь до 9%, но если GTX 1060 почти не получает преимущества, то две другие видеокарты показали видимый прирост частоты кадров, хоть и не слишком большой. Посмотрим, что получится в тяжелом для видеочипов режиме:
Как ни странно, но ситуация осталась почти без изменений, только относительные цифры прироста снизились, и теперь он составляет от 2% до 5% — всегда в пользу более новой версии D3D. Старшая GeForce RTX 2080 Ti заметно быстрее других видеокарт, но и для нее разница между D3D11 и D3D12 составляет лишь 5%. Главный вывод — можно смело включать D3D12-режим для видеокарт и AMD и Nvidia, и чем мощнее GPU — тем больше прирост в частоте кадров.
Shadow of the Tomb Raider
Последняя игра серии Tomb Raider получила более продвинутый D3D12-рендерер, и он явно работает лучше на видеокартах Nvidia, что тоже неудивительно, ведь именно они помогали разработчикам игры при оптимизации кода. В то время как Radeon RX 580 в D3D12-режиме уступил самому себе 5% при сравнении с D3D11-версией, GeForce GTX 1060 показала прирост скорости в 13%, а топовая карта семейства Turing вообще была почти на треть быстрее при использовании нового API.
Нагрузка на GPU увеличилась, но не настолько, чтобы скорость упиралась в него в случае GeForce RTX 2080 Ti, поэтому для этой модели выводы остались прежними — в D3D12-режиме скорость заметно выше, а нагрузка на CPU меньше. А вот парочка среднебюджетных решений, ставших весьма популярными за несколько лет, показывает очень близкие результаты в обоих режимах — обе они обеспечивают 37-39 FPS, в зависимости от условий.
The Division 1
Первая игра сериала The Division получила D3D12-рендерер не сразу по выходу, а несколько позднее. Похоже, что он не слишком хорошо подходит для графических решений Nvidia, которые не получают прироста от его использования, а старшая GeForce RTX 2080 Ti даже снижает производительность на несколько процентов. В то же время, единственный Radeon в нашем материале дает почти 10% прирост от применения нового API.
Примерно то же самое получается и при усложнении задачи для графических процессоров — повышение разрешения и качества рендеринга привело к снижению прироста и падения скорости, но их знак остался тем же: на GeForce GTX 1060 выбор API не влияет ни на что, старшая GeForce немного теряет в D3D12-режиме, а модель Radeon RX 580 оказалась быстрее при использовании новой версии API, но уже лишь на 6%.
The Division 2
Вторая часть игры явно смотрится лучше уже в D3D12-варианте, причем сразу на всех участвующих в нашем сравнении графических процессорах. Решения среднего уровня от AMD и Nvidia получают прирост от нового API порядка 10%-12%, хотя при этом Radeon RX 580 оказывается заметно производительнее своего прямого конкурента, а вот GeForce RTX 2080 Ti довольствуется вдвое меньшим приростом в частоте кадров от D3D12.
Ситуация переворачивается с ног на голову при увеличении нагрузки на GPU. Теперь среднебюджетные Radeon RX 580 и GeForce GTX 1060 показывают прирост скорости рендеринга лишь на 8% и 3%, соответственно, а вот старшая видеокарта Nvidia в более сложных для GPU условиях показала прирост FPS аж на 18%. Так что главные выводы все те же. Во-первых, в случае игры The Division 2 можно использовать D3D12-режим на видеокартах обеих компаний: AMD и Nvidia. А во-вторых, толку от нового API тем больше, чем мощнее GPU относительно CPU.
Total War: Warhammer II
Увы, но в случае игры Total War: Warhammer II, режим использования Direct3D12 остается в опытном варианте, и он абсолютно на всех видеокартах серьезно проигрывает D3D11-рендереру. Если для среднеценовых видеокарт Radeon RX 580 и GeForce GTX 1060 падение производительности составило 14%-17%, то для топовой видеокарты семейства GeForce RTX это уже минус треть скорости от D3D11-режима, что просто неприемлемо. Налицо плохая оптимизация разработчиками. Неудивительно, что из более новой Total War: Three Kingdoms такую кривую поддержку выкинули.
Почти то же самое отмечается и в более сложном графически режиме с повышенным разрешением рендеринга и максимальным качеством графики. Абсолютно все GPU при использовании более нового графического API уступают себе же в D3D11-варианте. Видеокарты средней мощности довольствуются падением частоты кадров на 10%-18%, а старшая GeForce — сразу на 27%. Вердикт: не включать D3D12 в этой игре ни в коем случае!
Metro Exodus
Игра Metro Exodus вышла не так давно, и кроме поддержки трассировки лучей DXR, имеет и D3D12-рендерер. Не очень понятно, кто виноват в таком качестве оптимизации, но на Radeon RX 580 мы отмечаем небольшой прирост в скорости рендеринга при переключении API на более новый (5%), а вот на GeForce GTX 1060 получается −4%. И если для D3D11 они обе показали 56 FPS, то в D3D12-режиме разница явно в пользу Radeon. А GeForce RTX 2080 Ti так и вовсе поразила падением скорости более чем на 20%. А ведь игра разрабатывалась с поддержкой компании Nvidia…
Даже на средних настройках в Full HD-разрешении производительность в игре упирается в GPU, ну а при усложнении задачи графический процессор и вовсе становится единственным ограничителем скорости рендеринга. Прирост от включения D3D12 в случае Radeon RX 580 немного увеличился, а вот обе GeForce все так же не получают никаких преимуществ от более современного рендерера, но хотя бы падение скорости стало меньше. В общем, польза от нового API в этой игре снова есть только для Radeon, да и то небольшая.
Выводы
Что хочется сразу отметить — все игры очень разные и сделать однозначные выводы по ним не получится. Средние показатели, полученные при сравнении двух разных версий API, дают не очень много информации, хотя кое-что можно понять и по ним. Уж очень по-разному сделаны D3D11 и D3D12-версии движков в разных играх. Соответственно, и ведут они себя совершенно по-разному на различных GPU, и две-три игры с большим падением или приростом FPS могут очень сильно повлиять на средний счет.
Архитектуры графических процессоров AMD и Nvidia сильно отличаются, качество кода для D3D12 тоже разное. Достаточно сравнить The Division 2, в котором все GPU получают преимущество от новой версии API, и Total War: Warhammer II, в которой на всех видеокартах отмечено сильное падение производительности. Поэтому лучше рассматривать сочетания конкретной игры и отдельных GPU. Но все же приведем средние показатели чисто справочно:
1920×1080 medium | 2560×1440 maximum | |
---|---|---|
Radeon RX 580 | 11% | 3% |
GeForce GTX 1060 | 4% | −3% |
GeForce RTX 2080 Ti | 2% | 8% |
Как видите, по средним цифрам можно увидеть лишь то, что Radeon RX 580 в среднем лучше справляется в D3D12 в режиме средней нагрузки на GPU и большой на CPU. Это может быть вызвано в том числе и тем, что при ограничении производительности рендеринга универсальным процессором, D3D11-драйвер AMD не слишком хорошо оптимизирован для многопоточной работы. У Nvidia такая оптимизация лучше, и в режиме невысокой нагрузки на GPU видеокарты GeForce и в D3D11 выглядят неплохо.
Еще один интересный вывод по средним цифрам — в более тяжелом режиме явно виден сильный прирост скорости у GeForce RTX 2080 Ti. Так получилось из-за того, что даже в повышенном разрешении при максимальных настройках общая скорость рендеринга частенько упиралась в CPU, а в этом случае применение D3D12 дает преимущество. Получается, что больше всего смысла в использовании новой версии D3D будет именно для более мощных GPU.
Мы намеренно не взяли в сравнение архитектуру Kepler — новую версию API эти GPU поддерживают лишь номинально, в некоторых играх D3D12-рендереры вообще не работают на таких GPU, а где работают, то не только не отмечается прироста производительности, а она даже значительно ухудшается, чаще всего. Да и архитектура Maxwell не очень хороша в D3D12-играх, чаще всего и на этих GPU прироста мы не видим. Кроме этого, видеокарты с малым количеством видеопамяти всегда страдают в случае D3D12 больше, так как программисты хуже оптимизируют код, чем это делает предыдущая версия графического API. Мы увидели это на примере игры Civilization IV, в которой в том числе использовался мультисэмплинг, предъявляющий повышенные требования к объему VRAM.
Что можно выделить еще — в случае режима с высокой загрузкой GPU, у видеокарт AMD все неплохо, от новой версии API они получают прирост частоты кадров во многих случаях, хоть и небольшой. За исключением высоких разрешений при малом объеме видеопамяти и некоторых игр, в которых D3D12-движок сделан явно не очень хорошо. Для Pascal в лице GeForce GTX 1060 новая версия API помогает несколько меньше, а иногда и вовсе дает отрицательный прирост FPS.
При упоре производительности в возможности CPU, новая версия Direct3D дает куда больший прирост в большем количестве случаев, и особенно это касается видеокарт AMD, D3D11-драйвер у которых несколько хуже оптимизирован. В своих обзорах мы не раз отмечали, что в таких случаях Radeon частенько проигрывает аналогичным по скорости картам GeForce. Но теперь, когда Direct3D12 используется все чаще, ситуация начинает улучшаться. И игр с поддержкой нового API будет все больше.
Повторим главный вывод нашего небольшого исследования — все игры и движки по-разному оптимизированы для новой версии графического API DirectX, и почти невозможно дать универсальный совет, стоит ли включать D3D12-рендерер или нет. Слишком многое зависит от разработчиков игр, и в случае новой версии D3D их влияние лишь усилилось. На многое также влияет и поддержка со стороны производителей GPU, которые помогают оптимизировать код именно под свои решения. Но DirectX 12 API точно дает важные преимущества и включать его в большинстве игр можно уже без особых опасений.
Quick Links
-
DirectX 11 vs. 12: What is the Difference?
-
Is DX 11 or DX 12 Better for Gaming?
-
Which DirectX Should I Use?
-
Frequently Asked Questions
Summary
Usually, DirectX 12 will give you a better gaming experience. This can include better frame rates and advanced visual effects. But if you’re playing games on older hardware, you might find that DirectX 11 improves game stability.
The version of DirectX you choose to use when gaming on a PC can make a significant difference in performance. But just because DirectX 12 is newer, does that mean it’s always the best choice? Let’s look at the differences between DirectX 11 and 12, and explore which version is better for gaming.
What Is DirectX?
DirectX is a collection of APIs (Application Programming Interfaces) created by Microsoft and included as part of the Windows OS. The API suite includes Direct3D, DirectPlay, DirectSound, DirectDraw, and several others. It was designed to help game developers ensure their software works with as many different hardware configurations as possible.
Instead of being required to provide individual drivers for multiple graphics, video, and sound hardware components, game developers can concentrate on programming for DirectX compatibility and know that their software will work. No matter if the end-user has, for example, a Radeon RX 7900 rather than a Geforce RTX 3060.
This standardization of the interface between software and hardware is the key to the boom in PC gaming over the last 20+ years. Although other API suites are available, including Vulkan and OpenGL, almost every successful game of the past two decades uses or supports DirectX.
DirectX 11 vs. 12: What is the Difference?
The main, and perhaps the most important difference between DX 11 and DX 12 is the level at which they interact with your hardware.
DirectX 12 uses low-level APIs, which operate in a software layer close to the hardware. That means it has more direct control over the GPU and can work more efficiently. DirectX 11 is a high-level API, which means that although it still has access to the GPU and other hardware, it is more removed and only has more generalized control over optimizations.
That low-level access to hardware optimization makes DirectX 12 more difficult and time-consuming to work with. This is likely why, despite DX 12 being released in 2015, games are still being developed for the easier and often more stable DirectX 11.
The second difference to consider when looking at DX 11 vs. 12 is CPU core utilization. For a long time, gamers had little reason to choose a CPU with more than four cores because game developers had a hard time developing games that could efficiently use more than that. With DirectX 12, Microsoft resolved that problem by building support for multi-core processing into the API. When playing a game using DX 12, more cores equals better performance.
The ability to access multiple cores is combined with another new feature in DX 12: Parallel Compute. In DirectX 11, operations are performed in a linear queue, with functions such as texture compression, physics simulation, shadow generation, and CPU data uploads occurring one after another. DirectX 12 allows these types of operations to be executed in parallel and across multiple threads, resulting in a noticeable improvement in efficiency.
DirectX 12 also introduces Asynchronous Compute. This allows operations to be executed without waiting for the previous one to complete. For example, the procedure to generate in-game shadows can be executed before the texture compression operation has finished.
The tiny optimizations achieved by using parallel and asynchronous computing, perhaps hundreds every second, all add up and form the core of the difference between DX 11 and DX 12. DirectX 12 is, to put it simply, much more efficient at communicating between game software and PC hardware.
Is DX 11 or DX 12 Better for Gaming?
In general, you will see better game performance when using DirectX 12. It is a big step up from DirectX 11 in terms of optimization and efficiency between the software and the compatible hardware, and any game that has been programmed to take full advantage will run better than it would when using the older API.
You might not see the same level of increased performance with every game, mainly because not every game requires or can use the kind of low-level optimizations DX 12 offers. NVIDIA suggests that using DirectX 12 with an RTX 3090 could increase the framerate of Assassins Creed Valhalla by as much as 24% and Cyberpunk 2077 by 20% over DX 11. Yet Far Cry 6 and The Division 2 only get a 5% boost.
DirectX 12 also supports a wider range of advanced GPU features, such as Ray Tracing and VRS (Variable Rate Shading.) If the game and your graphics card can use these effects, choosing DX 12 will undoubtedly give you a better visual experience.
Which DirectX Should I Use?
Not all games let you choose between using DirectX 11 and 12. In fact, the number of games that do offer the choice is still pretty low. And even the games that are compatible with DirectX 12 will often default to DirectX 11 when first installed. DirectX 11 might even be the better choice on older PC hardware, purely to avoid issues with compatibility.
But most PC gamers will see a performance improvement, particularly frame rate, by switching to DirectX 12 when available. If there is the option to choose within the in-game settings, it is worth trying out both versions to see what works best.
Frequently Asked Questions
What DirectX Do I have?
If you’re using Windows 10 or 11, you should have DirectX 12 on your computer. It is included with both operating systems. You can check by opening the Run dialog and typing «dxdiag» to open the DirectX Diagnostic Tool.
Do I Need to Install DirectX 12?
No, you normally won’t need to install DirectX 12 manually as it comes with Windows. If a game requires a particular version of DirectX 12 to run, you will be prompted to install it when installing the game. You can also update DirectX when new versions become available.
Does DirectX 12 Increase Frame Rates?
As long as DirectX 12 has been implemented correctly by the game developer, using it should result in a higher frame rate. You are unlikely to see a magical doubling of the FPS, but an increase of 20-25% over DX 11 is not uncommon.
What Is DirectX 12 Ultimate?
DirectX 12 Ultimate is the latest version of DirectX 12, released in 2020. It is designed to be a unified API library across Windows and Xbox consoles and introduced several new features, including DirectX Raytracing and Mesh Shading. Not all graphics cards support DirectX 12 Ultimate, so availability is dependent on your hardware.
FAQ
What DirectX do I have?
If using Windows 10 or 11, you should have DirectX 12 on your computer. It is included with both operating systems. You can check by opening the Run dialog and typing «dxdiag» to open the DirectX Diagnostic Tool.
Do I need to install DirectX 12?
No, you normally won’t need to install DirectX 12 manually as it comes with Windows. If a game requires a particular version of DirectX 12 to run, you will be prompted to install it when installing the game.
Does DirectX 12 increase Frame Rate?
As long as DirectX 12 has been implemented correctly by the game developer, using it should result in a higher frame rate. You are unlikely to see a magical doubling of the FPS, but an increase of 20-25% over DX 11 is not uncommon.
What is DirectX 12 Ultimate?
DirectX 12 Ultimate is the latest version of DirectX 12, released in 2020. It is designed as a unified API library across Windows and Xbox consoles and introduced several new features, including DirectX Raytracing and Mesh Shading. Not all graphics cards support DirectX 12 Ultimate, so availability is dependent on your hardware.
::>Видеокарты
>2017
> DirectX 11 vs DirectX 12: сравнение производительности на новых картах с новыми драйверами
В этом материале мы хотим опять вернуться к теме сравнения производительности в DirectX 11 и DirectX 12 на новых видеокартах от AMD и NVIDIA. Ведь за прошедшие месяцы разработчики игр и производители GPU неустанно улучшали свои продукты, в том числе оптимизировали поддержку нового программного интерфейса. Насколько лучше и перспективнее теперь смотрится DirectX 12 в разрешении Full HD? Давайте проверим на практике.
По традиции начнем с представления участников. Первой тестовую полосу препятствий пройдет видеокарта Inno3D iChill GeForce GTX 1080 TI X3 ULTRA. Она обладает отличной 3-вентиляторной системой охлаждения и хорошим заводским разгоном не только GPU, но и видеопамяти.
Затем мастер-класс покажет ROG STRIX Radeon RX 580 OC Edition от компании ASUS. Она также использует эффективный 3-вентиляторный кулер и небольшой разгон графического процессора. Конфигурация остального стенда не изменилась:
- Intel Core i7-6700K (OC 4.5 GHz)
- Aardwolf GH400
- ASUS MAXIMUS VIII RANGER
- 2 x 8 GB DDR4-3200 G.SKILL Trident Z
- SSHD Seagate ST2000DX001 2 TB
- HDD WD WD1000DHTZ 1 TB
- Seasonic Snow Silent 1050 1050W
- ASUS VH228H
Deus Ex Mankind Divided при очень высоком пресете настроек качества обеспечивает более высокую загрузку процессора и видеокарты в режиме DirectX 11. А вот оперативной и видеопамяти потребовалось больше в новом API. В плане производительности лучше смотрится DirectX 12: 122 против 120 кадров/с по среднему показателю и 91 против 83 по минимальному.
Hitman при ультравысоких настройках уже с первых кадров демонстрирует солидный прирост скорости видеоряда от перехода на DirectX 12. Правда, теперь уже загрузка центрального и графического процессоров выше именно в новом API. Обратите внимание и на использование видеопамяти: около 6 ГБ в 12-ом DirectX и менее 3,5 ГБ в 11-ом. В итоге получаем 145 против 123 FPS в пользу DirectX 12, что эквивалентно 18%.
Очень высокий пресет настроек в Rise of the Tomb Raider хорошо загружает процессор и видеокарту в обоих случаях, хотя в режиме DirectX 12 от процессора требуется больше мощности. Разница в потреблении видеопамяти небольшая, а вот ОЗУ в новом DirectX съедается почти на 2 ГБ больше. Минимальный фреймрейт в обоих случаях составил 66 FPS, а по среднему лидирует DirectX 12: 179 против 166.
Sniper Elite 4 при ультра настройках больше загружает процессор в режиме DirectX 11, зато требует чуть больше видеопамяти и оперативки в DirectX 12. Также в нем демонстрируются чуть более высокие скоростные показатели: 190 против 187 FPS по средней частоте кадров и 170 против 166 по минимальной. То есть разница составляет 1-2%.
Сюжетная кампания в Battlefield 1 при ультра настройках более стабильно и высоко загружает видеокарту в новом DirectX. В нем же требуется на 700 МБ больше видеопамяти, зато в DirectX 11 использование ОЗУ выше на 1200 МБ. Да и скорость видеоряда в старом API также выше: 162 против 143 по средней частоте и 138 против 108 по минимальной. Разница составляет 13% и 28% соответственно.
The Division при максимальных настройках графики отдает предпочтение DirectX 12. В нем и видеокарта лучше загружена, и фреймрейт чуть выше. Правда, видеопамяти и ОЗУ также требуется чуть больше. В среднем имеем 147 против 141 кадра/с, что эквивалентно приросту в 4%.
И завершает первую часть игра DOOM при ультравысоких настройках графики. В данном случае сравниваем режимы OpenGL и Vulkan. Ранее видеокарты NVIDIA лучше смотрелись именно в первом из них, но теперь ситуация поменялась: в OpenGL были просадки до 183 FPS, поэтому средний показатель ориентировочно составляет 192 кадра/с. А вот в Vulkan частота стабильно находилась в районе 200 FPS.
Подписаться на наши каналы | |||
It was 2015 when DirectX 12 was released alongside Windows 10. Its release brought a new era for game developers and gamers. While it can boot GPU performance, it helps to reduce CPU overhead. On the other hand, DirectX 11, its predecessor, was released in 2019 when Windows Vista came out. However, DirectX 12, the newer API came with significant improvements. Let’s dig into this article to learn about DirectX 11 vs DirectX 12 in detail.
What is Microsoft’s DirectX?
It is a collection of APIs that you can use to handle multimedia activities. For instance, you can program games on MS platforms such as Windows and Xbox. With the help of an API, two or more computer programs are capable of communicating with each other.
The Importance of DirectX:
Developers depend on the OS for driver support when they need to create a game for Windows. In this case, DirectX plays an important role by serving as a backbone, with newer versions that come with some vital features like ray tracing. However, you should know that there are some specialized software frameworks called game engines, such as Unreal Engine. But what if nothing will be there? Previously, developers liked to create games for DOS and gaming consoles. But after some time, DirectX turned into an industry standard. In order to become a proper and complementary platform, DirectX has paved the way for PC gaming.
However, you should know that creating games for Xbox or PlayStation is still easier for developers. A few people think that console gaming is the way to go. PC gaming can provide users with several benefits. 8K resolution, high-fidelity ray tracing, ultra-wide monitors, and smoother refresh rates can offer you an excellent experience. Because of DirectX and other graphics APIs, PC gaming is enjoyable nowadays. Thanks to DirectX because of which all modern PCs are able to work in the same manner in order to play PC games.
Why Switching From DirectX 11 To DirectX 12 Isn’t Straightforward?
DirectX 12 was released in 2015, six years after the release of DirectX 11. Developers have made plenty of games during these years using DirectX 11. However, you will be glad to know that moving from DirectX 11 to DirectX 12 is simple.
DirectX 11 is a high-level API and that’s why developers can easily work with it. As a result, you can play stable games. On the contrary, DirectX 12 is a low-level API enabling developers to fine-tune optimization at a granular level. But you need to have a lot of knowledge to use this new API.
So, a game made using DirectX 12 might offer worse performance if the developer lacks proper knowledge. As a developer, how you implement it is very important. That’s why several developers still like to use high-level APIs such as DirectX 11.
DirectX 11 vs DirectX 12— What is the Difference?
Mainly their interaction level with your device’s hardware differentiates these two. Let’s learn about DirectX 11 vs. DirectX 12 in detail.
-
Type of API level:
DirectX 12 is a low-level API that can operate in a software layer near hardware. This indicates that DirectX 12 can control the GPU more directly and is capable of providing more efficient performance. On the flip side, DirectX 11 is a high-level API, indicating that despite having access to GPU and other hardware, this one is more removed and it only has generalized control over optimizations.
DirectX 12 has become more time-consuming to work because of the low-level access to hardware optimization. It is one of the reasons developers are still preferring to use DirectX 11 to make more stable games.
-
Better Scaling With Multi-Core CPUs:
Improved CPU utilization is one of the core benefits of using DirectX 12. Games using DirectX 11 used 2-4 cores for different mechanics like Physics, AI, draw-calls, etc. Even a few games are limited to 1 core. But with DirectX 12, this situation has totally changed. It is capable of evenly distributing the load across all cores. Thus, multi-core CPUs become more relevant for gamers.
-
Use:
DirectX 11 was released several years ago and has become old now. Still, this API is preferable for developers, and they use it in multiple modern games. But now, the demand for a lower-level API is increasing. That’s why Microsoft designed DirectX 12 and released it in the market. It enables developers to gain extra granular control over hardware resources such as the CPU and GPU.
-
Operations:
DirectX 12 can access many cores using the new Parallel Compute feature. If you use DirectX 11 API, you will find the operations getting performed in a linear queue. It means that texture compression, physics simulation, shadow generation, and CPU data uploads will occur one after another. If you use DirectX 12, you will find that such operations are executed in parallel, which results in a great improvement in efficiency.
-
Asynchronous Compute:
DirectX 12 comes with Asynchronous Compute through which operations can be executed without waiting for the previous one to finish. For instance, the method to create in-game shadows is possible to be executed before the completion of the texture compression operation. In simple words, when it comes to talking about communicating between gaming software and PC hardware, compared to Direct X 11, DirectX 12 is more efficient.
-
Pipeline State Objects:
When you use DirectX 11, you will find objects in the GPU pipeline across Hull Shader, Vertex Shader, Geometry Shader, and other states. These states will often be interdependent on each other. Therefore, the next stage is unable to progress unless the previous stage is defined. Usually, a geometry is sent from a scene to the GPU for rendering. During this time, the essential hardware and resources will vary depending on the blend state, rasterizer state, depth stencil state, culling, etc.
It is needed to define every object in the DirectX 11 individually at run time. It will not be possible to execute the next state until the previous one has been finalized. The hardware units needed by this API are shaders vs ROPs, TMUs, etc. It leaves hardware under-utilized and results in reduced draw calls.
The new API DirectX 12 uses PSO or Pipeline State Objects to replace different states. These are finalized upon creation itself. In simple words, PSO refers to an object that is used to describe the draw call’s state. An app can be used to generate as many PSOs as needed and to switch between them when required. PSOs come with bytecodes for all shaders like pixel, hull, vertex, domain, and geometry shaders. Additionally, you can convert them to any state according to your needs without relying on other state or object.
-
Maximum Hardware Utilization:
AMD GPUs preferred the new API titles more than the NVIDIA parts because of better utilization. While NVIDIA always comes with better driver support, AMD hardware doesn’t have it. In order to improve utilization, DirectX 12, the new API brings several technologies like asynchronous compute. You can use this technology to execute the pipeline’s multiple stages simultaneously.
-
Closer To Metal Support:
Using DirectX 12 provides developers more control over how their game will use the hardware. Previously, drivers and the API tool took care of them. But now the task is in the hands of the developers. Developers have closer to metal access indicating that game engines handle most resource allocation and rendering responsibilities using the graphics drivers.
DX 11 vs DX 12— Which Should You Choose?
You may be now thinking that DX 11 or DX 12 —— which one you should choose. Remember that the answer relies on the game you want to run. The Guild Wars 2 game runs on the old API DirectX 11. So, although your device’s hardware and OS use DirectX 12, you do not get an option to select DirectX 11 in the game. The reason is that the game is not compatible with this. However, there are a few games supporting both APIs. Names of these games are Fortnite, Battlefield 5, Shadow of the Tomb Raider, etc. You are capable of switching these APIs in the game settings.
Now you may think of those games which support both APIs — which one among these two APIs offers better in-game performance? It depends on many important factors, such as CPU and GPU usage, average frames per second, etc.
You can find a little visual difference between these two APIs though there are many years of difference in their launches. Additionally, you might have observed the differences in CPU and GPU loads between these two APIs. Games based on DX 12 versions need fewer resources than the older DirectX 11.
Along with in-game support, hardware is another factor based on which you need to decide for which one you should go for. Modern GPUs are compatible with DirectX 12. But it isn’t possible for any old model of GPU such as the Radeon HD 4870 released in 2008. This GPU is compatible with up to DirectX 10. It means that this GPU could not run most modern games, which are capable of using DirectX 11 and DirectX 12 in order to run.
Should You Use DirectX 12?
Multiple games like Civilization VI, Control, Shadow of the Tomb Raider, and Dying Light 2 are compatible with both DirectX11 and DirectX 12. You can see most of the games using DirectX 11 by default for compatibility reasons. However, the idea of changing this API to DirectX 12 mode is good.
The exception is when you use a PC that is 10 or more years old. Older hardware runs on DirectX 11 smoothly. But in this case, DirectX 12 may be unable to offer enough benefits. Most people need to choose DirectX 12 for its better game optimizations and more extensive features.
DirectX 12 can provide you with improved performance in playing games that are compatible with both APIs when you implement it properly. When it comes to graphics, DX12 is better than DX11, as it comes with different advancements that have been made in the last few years. These are:
Ray Tracing:
It is an important feature of DX 12. This API can facilitate real lighting, reflections, and shadows. Games with ray tracing will look amazing, mainly when you consider the look of Cyberpunk 2077 keeping DLSS 3.5 enabled.
DirectML:
This addition can be found only on the DirectX 12 API. It helps to improve game development with ML technology. Also, it boosts graphical fidelity. It is found that a super-resolution technique that uses DirectML has better quality compared to traditional bilinear upsampling.
Variable Rate Shading (VRS):
This one is another upgrade that DirectX 12 comes with. In order to enhance overall performance, developers use this to reduce the shading rate in a specific area. As some parts of the game will not have a visual fidelity downgrade with a lower shading rate. So, it is possible to increase performance in-game with VRS. You should know that VRS is available in two types including Content Adaptive Shading and Motion Adaptive Shading.
- Content Adaptive Shading enables individual shading of every 16×16 screen tiles. It permits the GPU to boost the rate of shading in stand-out regions and reduces them in the rest.
- Motion adaptive shading boosts the shading rate of those objects which are in motion, while decreasing that of relatively static objects. In a racing game, a car gets increased shading. But the sky along with off-road regions will get less priority.
Multi-GPU Support:
DirectX 12 is compatible with two types of multi-GPU support, which are implicit and explicit. implicit is SLI/XFX and leaves its task to the vendor driver. The second type allows the game engine to control the functionality of the two GPUs in parallel. It enables improved scaling. Also, it helps to mix and match different graphics processor units, including your dGPU and iGPU.
Double Video Memory:
Another advantage that should be mentioned is two GPUs’ VRAM images are not mirrored. So, in order to double the memory, these can be stacked. Because of these excellent features, DirectX 12 has become a major software upgrade to the world of PC gaming.
The Bottom Line:
D This version allows other graphics software to work more quickly and efficiently. But this API requires hardware that will be compatible with it. Without the proper hardware, you will not be able to see any type of performance improvements. In addition, FPS could drop and stutter, after switching to DirectX 12.
Frequently Asked Question on DirectX 11 vs DirectX 12:
- Is DirectX free?
Yes. It is possible to download Microsoft DirectX on the computer for free.
- Should I use DirectX 12 or normal?
It totally depends on your system. If the system supports it, you can get better performance using DirectX 12; otherwise, you can go for Dx11.
- Does DirectX 12 improve FPS?
You can enjoy improved gaming performance using DirectX 12. It offers advanced visual effects and better frame rates. However, when you play games on older hardware, you can find DirectX 11 improving game stability.
DirectX is vital for Windows based gaming. It’s a compilation of APIs (application programming interfaces) necessary to play video games on your Windows system. It’s a way of letting the game communicate with your PC’s hardware, such as the memory, sound and graphics cards, optimizing and improving the game experience.
DirectX has different versions, the most recent being DX11 and DX12. Which is better? We’ll go over all the pros and cons of DirectX11 vs 12 and when one may outperform the other, such as when you have a specific PC set up or particular game to run.
Differences Between Dx11 vs 12
Many Windows based games require you to use DirectX. If you have the wrong version, however, your game might not function. While it may seem logical to just use the latest version, DX12, a lot of games still use DX11, or give you the option to choose. For that reason, let’s dive into the differences of DirectX11 vs 12.
DirectX11
- DX11 is a high-level API, meaning it is more generalized and less embroiled with the hardware or software being used as it’s further removed compared to low-level API
- Helps games be more stable if you’re using older hardware
- Compatible with Windows Vista, 7, 8, and 10
- Easier for developers to work with
- Tessellation (using geometric tile shapes to increase depth in graphics)
- Well established and broad library of compatible games
- Older titles can be played with DX11, but not DX12
- Serial operations (meaning operations are executed one at a time, in order)
DirectX12
- DX12 is a low-level API. It’s closer to the hardware on a more detailed level. It’s more detailed, with capabilities that can be minutely manipulated by the programmer. This is obviously more work for the developers than a high-level API
- Because of this level of control, DX12 vastly improves most game performances
- Better visual effects and frame rates
- Lowers latency issues
- Better support for newer features, like virtual reality
- Can handle multi-GPU configurations at the same time
- Uses more of the PC’s resources to improve the game experience
- Works on Windows 10 and 11, as well as XBox
- Variable rate shading and mesh shaders
- Sampler feedback for better rendering
- Asynchronous shaders
- Because of its efficiency, slightly older hardware can play newer games with more success than older versions of DX. That said, there are certain hardware requirements for DX12 to run properly, such as a multicore CPU
- Parallel compute (allows multiple operations at the same time, increasing efficiency)
- If you have an old graphics card, DX12 will only show minor improvements
DirectX 11 vs DirectX 12 for Specific Games
If you don’t have hardware concerns, the biggest factor in using DirectX11 vs 12 really depends on the game. Some games do well with low-level optimizations and don’t need all the fancy graphic improvements that come with DX12. Others look wildly different with the newer version and will be greatly enhanced. The age of the game and the systems it is made for are other factors.
Let’s jump into specific games and how they differ when played with DX11 vs DX12.
Ready or Not DirectX 11 vs 12
This popular tactical first person shooter was initially released in 2021 and is still frequently played today. Because it is a newer release, one might assume it should be played on the newer DX version. In truth, that depends.
Ready or Not’s official site recommends using DirectX11, surprisingly. It helps to decrease the chances of freezing and stuttering, especially if you’re playing on an older system. If you have a sophisticated PC, you’re welcome to use DX12 and see if you prefer it. Even though it can improve the graphics, some users may find DX12 more prone to stutters and other problems. You can always try it and see how it behaves but if you experience problems, DX11 is lauded for its stability. Ready or Not DirectX 11 vs 12 seems to sway in favor of 11, but there will always be those who swear by 12.
Fortnite DirectX 11 vs 12
Fortnite has been incredibly popular for years, and it’s not going away anytime soon. Once again, the answer to using Fortnite DirectX 11 vs 12 will depend on your actual PC and how new the hardware is. For those with the right system, the general consensus is that DX12 is superior. Frame rate is higher, graphics look better, and gameplay is often smoother. Note the word, often. Some still complain about things like stuttering or even game crashes on DX12, in which case there’s nothing wrong with going back to DX11. You can also try giving DX12 a few more chances and see if the problems resolve. It’s commonly reported that the bugs can work themselves out and you’ll end up happy you tried again.
Path of Exile DirectX 11 vs 12
This free action-based RPG is more involved than some games, with an in-depth gem system, skill tree, and various leagues and events. Because of all these facets, it’s important to find the right fit in terms of your API.
Speaking of API, in the gaming community, there’s debate over which one to use: Path of Exile DirectX 11 vs 12 vs Vulkan. Vulkan is another API, much like DirectX. Like DX12, it’s low-overhead and greatly improves 3D graphics while utilizing system resources effectively. In fact, it’s so good at this that many say it runs better on lower-spec PCs than DX12 does. Another strength for Vulkan, besides that it’s open source, is that it’s cross-platform. It works on Linux, Nintendo, MacOS, Android, and more. DX12 only works on Microsoft systems.
So which is best? You probably already know the answer. It depends. If you value frame rates, many users sing Vulkan’s praises, whereas others prefer graphics and choose DX12. Still, there’s a lot of consensus that Vulkan is faster and has better FPS (frames per second).
However, when it comes to Path of Exile, specifically, it’s all chaotic in terms of what will work best for you. Sometimes you’ll start off happy with DX12 and then a patch will be released and it suddenly caps your frame rate like crazy. Another patch? It may suddenly work better or you may be forced to go to Vulkan or DX11. It’s a tumultuous experience for many, which is why there are so many Path of Exile forums on just this subject. If you’re using a system other than Microsoft, however, you have your answer. Vulkan it is.
In the end, pick whatever works best that day. If you have an older system, you may have luck with DX11 for smoother compatibility. If an update is wreaking havoc, pivot to Vulkan or DX12. Maybe you’ll even get lucky and have long term stability in whatever API you decide on. It’s seemingly different for everyone. Good luck.
Choosing between DirectX 11 vs DirectX 12
When choosing which DX version is best for you, it really all boils down to trial and error. Look for factors like game compatibility, the age of your system and hardware, the age of the game itself, and how you feel about frame rates and graphics. In general, the thought is that newer systems should use DX 12 for the best user experience. It makes sense and most people tend to prefer DX 12 over DX 11. That said, there are still plenty of reasons to use DX 11, so don’t count it out completely.
Frequently Asked Questions
Is control better in DirectX 11 or 12?
Which has better control, DirectX 11 or 12? If your PC is newer, you’ll generally have a smoother and responsive user experience with DX 12. This is especially true if the games you’re playing are compatible.
Is DirectX 12 better than DirectX 11?
In terms of graphics, function, efficiency, and other performance aspects, yes. So long as you’re playing a game that is meant for DX 12 and on a system that can fully handle its capabilities. If you’re playing an older game and you want stability and reliability, DX 11 still holds strong.
Does DirectX 12 improve fps?
Yes. Usually, you will see better frame rates with DX 12. That said, remember that things like hardware, game compatibility, and even game updates and patches can do some pretty wacky things to your fps.
Heidi Edwards
Generalist/Tech Writer
Versatile copywriter Heidi Edwards, a marketing graduate from WGU, crafts compelling content across diverse sectors, from eco-conservation to tech. Self-taught in WordPress and graphic design, she runs the successful Aultman Group.