Какой directx лучше для windows 10 x64 в играх

Немного теории

Для начала повторим вкратце основы о 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 точно дает важные преимущества и включать его в большинстве игр можно уже без особых опасений.

Многие современные игры при запуске в Windows предлагают выбор между двумя графическими API — DirectX 12 или Vulkan, что может вызвать у пользователей вопрос: что лучше выбрать.

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

Что такое DirectX и Vulkan

И DirectX и Vulkan представляют собой API для взаимодействия программы, а в текущем контексте — игры, с оборудованием вашего компьютера. В то время как Vulkan — API только для графики, DirectX — набор различных API, но при выборе между ним и Vulkan в играх обычно подразумевается лишь графическая часть — Direct3D.

Оба предназначены для того, чтобы облегчить разработку игр независимо от конкретного графического оборудования пользователя, обеспечив при этом максимально высокую производительность в играх. И тот и другой графический API может работать с видеокартами AMD, NVIDIA и другими.

В то время как DirectX — разработка Microsoft и используется лишь в операционных системах этой компании, начиная с Windows 10, Vulkan может быть использован в Windows, MacOS, Linux, Android и других операционных системах.

Что выбрать — Vulkan или DirectX 12

Vulkan и DirectX 12 в RDR2

Многие современные игры позволяют использовать как Vulkan, так и DirectX в качестве графического API. Четкого ответа на вопрос какой из этих API лучше нет, но:

  1. Большинство тестов показывают более высокую частоту кадров (FPS) в играх при выборе Vulkan, за счет того, что для работы этого API требуется меньше ресурсов компьютера, а также лучше реализована работа на многоядерных процессорах. Однако это может зависеть от конкретной игры и оборудования компьютера пользователя.
  2. Есть мнение, что выбор DirectX 12 в Windows позволяет добиться более стабильной работы игры, в некоторых случаях — избежать сбоев.
  3. Выбор Vulkan часто позволяет снизить нагрузку на процессор, то есть в этом плане может оказаться более эффективным.
  4. Визуальных отличий в картинке при одинаковых настройках графики в игре при использовании Vulkan и DirectX обычно нет.
  5. Работа игры при выборе того или иного API может зависеть от конкретной игры и от того, насколько успешно разработчики реализовали работу с Vulkan и/или DirectX.

Единственно верного ответа на вопрос «Что выбрать — Vulkan или DirectX 12» нет. Многочисленные тесты в сети и опыт пользователей показывают, что производительность в каждом из вариантов выбора будет зависеть:

  • От самой игры.
  • От настроек графики в игре.
  • От графического оборудования и поколения видеокарты: например, большинство тестов показывают, что для современных видеокарт NVIDIA предпочтителен Vulkan, а для AMD обычно более быстрым оказывается DirectX 12
  • В некоторых случаях — от других характеристик компьютера, таких как производительность процессора.

Подводя итог, оптимальный вариант — проверить работу и DirectX, и Vulkan, переключив 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.

Choosing directx version for Icarus in Steam

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.

the DirectX Diagnostic Tool in Windows 10

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. 

directx12-windows10

Windows 10 с ее новыми радостями (и не совсем радостями) уже несколько недель, как можно испытать на своем компьютере. Само собой, для нас геймеров главная новинка — это API имени DirectX 12. Про обещания программистов за просто так повысить производительность процессоров мы писали еще до релиза ОС; тогда, помнится публике сулили избавление от раскаленных процессоров и прочие плюшки.

Собственно, вот DX12 в его ранних версиях уже стоит на наших компьютерах, AMD и Nvidia пошли танцевать друг с другом и покупателями пиар-танцы и распалять наше воображение разными анонсами, а разработчики взялись за оттачивание нового зрелищного графона. И все это здорово. Другой вопрос, как там у DX12 дела с видеокартами, стоящих в ПК здесь и сейчас?

Nota bene: сейчас будет много текста, если вам интересен короткий ответ, можно начать сразу с выводов внизу страницы.

Конечно, эра DirectX 12 еще только-только началась. И в софте, и в собственно технологии, и в железках. Это значит, что повсеместно фишки DX12 в играх сейчас встретить нельзя — полноценной поддержки новой API пока что нет ни в одной игре. Впрочем, эта небольшая деталь не мешает «железным» гигантам уже сейчас с полной отдачей рубиться на новом поле боя.

Что вообще DirectX 12 за фрукт, где он водится и с чем его едят? DX12 – это API, application programming interface, по русски — интерфейс программирования приложений, набор алгоритмов и протоколов, работающий связующим звеном между приложениями (в смысле, играми) и железом ПК (процессором и видеокартой) и определяющий, как они друг с другом будут работать.

DX12 отвечает практически за все на свете, от звука до 2D-видео. Но для нас геймеров важнее всего сидящая в DX12 штука под названием Direct3D, работающая с трехмерной графикой. В новой версии этого самого Direct3D заключены большие изменения — понижено количество аппаратных абстракций (есть такой термин, потерпите, пожалуйста, чуть-чуть) и перестроена последовательность обработки 3D-графики.

Понижение уровня аппаратных абстракций значит, что теперь игры смогут теснее общаться с конкретными железками, а значит, быстрее и эффективнее использовать их ресурсы. Если раньше приложения общались с видеокартами через своеобразного переводчика, то теперь их научили разговаривать друг с другом на одном и том же языке. А это значит, что быстрее заработать должен каждый первый ПК с Windows 10 на борту, а каждая первая видеокарта должна выдавать больше кадров в секунду, чем раньше. Этой-то фишки DX12 мы больше всего и ждали.

Если совсем строго, то полный спектр возможностей DirectX12 поддерживает только последнее, второе поколение Maxwell GPU (см. GTX 970, 980 и более поздние модели). Но: все важные фишки DX12 должны заработать на любых карточках, начиная от AMD GCN (стартуем от Radeon HD 7000) и Nvidia Kepler (GeForce GTX 600 и дальше). Другими словами, если вы купили свою видеокарту в 2012 году или позже, теоретически с DX12 ваша покупка работать должна.

Кому этот новый подход должен аукнуться, так это разработчикам, которым теперь нужно, в общих чертах, писать более четкий отдельный код для работы с картами AMD и Nvidia вместо того, чтобы перекладывать ответственность за плавную работу с разными видеокартами на API.

Смена же маршрута обработки графики в основном работает на снижение так называемых draw call overhead, оверхэдов по вызовам отрисовки. Увы и ах, опять жаргон. Впрочем, суть процесса понять несложно.

dx12-2

Вызов отрисовки — это запрос от процессора на рендер объекта или другого элемента в 3D-движке. Каждый такой вызов на какое-то время вызывает оверхэд API (заставляет API потреблять лишние ресурсы и время на свою задачу), или нагрузку на CPU. Заложенная в DX12 идея заключается в том, чтобы уменьшить в количествах или вообще убрать эти оверхэды.

Другими словами, с DX12 процессор (почти) перестанет быть лимитирующим фактором для существующих игр и выдаст играм будущим больше доступных ресурсов, которые можно будет направить, например, на работу более умного AI.

Такова, по крайней мере, теория. Вопрос в том, насколько хорошо этот концепт будет реализован на практике, и будут ли у новых карточек от Nvidia или AMD какие-нибудь конкретные преимущества. Отдельно интересно, сможет ли избавление от оверхэдов CPU сделать дешевые процессоры от AMD жизнеспособными вариантами для геймерских ПК, ведь сейчас на этом поле кроме как на Intel никто и не смотрит.

Если честно, ответы на вопросы выше придут только со временем. Но потыкать пальцем в небо и прогнать DX12 через практический бенчмарк мы все-таки можем. Есть такая стратегия Ashes of The Singularity, способная выдать на экране тучу объектов и до смерти загрузить процессор на DX11.

ashes 4

Вообще, в серьезных статьях лучше так не делать, но тут у нас особый случай (попробуй дай оценки фишке с таким широким спектром применения, опираясь на показатели одной железки), и поэтому проверять показания прибором мы будем не только у себя любимых, но еще и на тематических интернет-ресурсах, поделившихся с миром своим опытом.

Интернет (в лице PC Perspective и Computerbase) поделился вот какими наблюдениями. Стоит сменить DX11 на DX12, и те же графические карты от AMD начинают играть в Ashes of The Singularity на 60-90% быстрее. Неслабый такой скачок, доложу я вам.

GPU от Nvidia, в свою очередь, где-то начинают работать шустрее на 25%, где-то вообще малость сбавляют прежние обороты. Какой-нибудь AMD Radeon R9 390X, ранее заметно отстававший от Nvidia GeForce 980, догнал и даже на пару волосков перегнал конкурента. Чудеса.

Если присмотреться повнимательнее, то можно разглядеть, что такие крутые повороты приходят вместе с высокими разрешениями. Производительность AMD FuryX скакнула вверх на 94% в разрешении 2,560х1,600. При этом, чем бюджетнее продукция, тем хуже скачок. Radeon R7 370 с DX12 выдал скачок «всего» на 15%, что на общем феноменальном фоне даже слегка разочаровывает.

Что же до CPU, то тут приход DX12 подтягивает, например, чип AMD FX 8370 с неиграбельных 20 (и ниже) кадров в секунду до сносных 30+. Примерно так же проявляют себя и дешевые чипы Intel Core i3. С DirectX12 на них можно даже слегка начать играться с настройками детализации. Процессоры от Intel подороже тоже демонстрируют солидные скачки в производительности на решительно любых настройках. А это значит, что покупка топовых CPU с приходом DX12 смысл таки не потеряла.

ashes 2

Но, опять же, сейчас нам приходится судить по одной игре, что не есть сильно объективно. Десять тысяч миллионов юнитов — это, несомненно, интересная перспектива для стратегий в реальном времени, но про то, что с полномасштабным приходом DX12 станет с геймингом в целом, по AotS судить нельзя. Тем более, что студия-разработчик игры — сюрприз – водит дружбу с AMD. Пока компания оперативно налаживает взять с разработчиками первого проекта с полной поддержкой DX12, Nvidia сидит в окопе и откидывается вот такими комментариями:

Мы верим, что в будущем появятся лучшие примеры настоящей производительности DirectX 12, и продолжаем работать с Microsoft над их API Dx12, играми и бенчмарками. Архитектура и драйвера GeForce для DX12 не имеют себе равных, и когда можно будет точно измерить производительность DX12, история с DX11 будет повторена.

То есть, в адекватность бенчмарка имени Ashes of The Singularity Nvidia не верит. Впрочем, не поднимать же ей белый флаг?

Похоже, что AMD с ее работами над технологией Mantle (суть, заменитель DirectX с теми же идеями, что и DX12) с приходом новой API удалось взять первый раунд железного противостояния.

ashes 3

Напоминаем, что DirectX12 – игрушка, идущая только в комплекте с Windows 10. Старшие операционные системы до нее обновиться не могут никак. Равно как и заточенные под старый код игры. То есть, ни одна игра сейчас DX12 толком не поддерживает. Пока новая API полностью вытеснит DX11, пройдет не один год; тем же разработчикам придется еще хорошенько попотеть.

И все-таки, вы посмотрите, какие перспективы открывает перед нами DX12, сколько ограничений новая API может снять в самых разнообразных игровых жанрах! Ваш покорный уверен, несколько лет ожиданий и пиар-войн будут того стоить.

Короткой строкой:

  • DirectX12 – новая API, серьезно снимающая нагрузку на процессор в некоторых элементах. Это значит, что игры должны будут идти значительно быстрее
  • Если ваша видеокарта не старше 2012 года, считайте, что вы более-менее уже на борту. Главное, поставьте Windows 10.
  • AMD обскакала Nvidia на старте «Гонки DX12».
  • Игр с поддержкой DX12 еще нет.

Оригинальный текст – rockpapershotgun.com.

С момента выхода DirectX 12 выпущен едва не десяток поколений видеокарт, совместимых с последним API. В последние годы почти все игры перешли на DX12, но они также поддерживают Vulcan и DX11. Два последних мы сравнивали в публикации , здесь рассмотрим основные отличия между Директ Икс 11 и 12, выясним, какой производительнее, чем они отличаются между собой.

Скачать DirectX 11

Скачать DirectX 12

Содержание

  1. Что нового в DirectX 12
  2. Игровые тесты
  3. Как заставить игры использовать DX11?
  4. Оправдан ли переход на DirectX 12: стоит ли его использовать?

Кроме нашумевшей трассировки лучей в новой версии API появилась возможность объединять видеокарты разных производителей в связку. Хотя технологию нужно долго и нудно оттачивать, ведь количество комбинаций графических ускорителей огромно, даже если брать самые популярные среди пользователей. Их все нужно протестировать друг с другом на совместимость, адаптировать драйверы под совместную работу.

Касательно производительности. В DirectX 11 для графики отведён один поток, это для самого ресурсоёмкого компонента. За другие части игрового движка отвечают остальные ядра CPU: звук, сеть, управление персонажами, объектами, например, автомобили, животные. В итоге при работе на API DX 11 игра использует максимум 6 потоков, причём пара последних почти бездействует. Реальное максимальное количество потоком для Директ Икс 11 – два, это достаточно двухъядерного процессора с двумя, максимум четырьмя виртуальными потоками. Остальные будут простаивать.

Directx 11

12-я версия API, в отличие от 11-й, распределяет нагрузку между большим числом ядер, а саму обработку графики больше полагает на видеокарту. При этом задействуются все 8 потоков CPU, пускай и не равномерно, а часть расчетов передаётся тысячам ядер GPU. Это в несколько (но не раз увеличивает производительность.

DirectX 12

Смотрим дальше. Ниже показана схема обработки данных при помощи DX11 – задачи выполняются последовательно: пока одна операция не завершится полностью, к выполнению следующей видеокарта не приступит.

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

Разделение задач

Ярче всего преимущества отрисовки виртуальных миров демонстрируют огромные открытые пространства, высокодетализированные объекты. В коридорах и иных закрытых местностях преимущества последнего API тают.

Технология рендеринга VRS и Mesh Shading, появившиеся в 12-м Директе, позволяют регулировать частоту шейдинга для разных областей картинки – снижать детализацию затенения на допустимых участках без ущерба качеству, но с выгодой для производительности.

Технология рендеринга

Ещё одно заметное улучшение DX12 – Sampler Feedback. Технология по принципу действия схожа с VRS: интеллектуально снижает нагрузку на видеокарту при наложении текстур. Особенно она ценна при прорисовке больших пространств.

В визуальном плане DirectX 11 и 12 отличаются мало, за исключением моделирования реалистических графических эффектов посредством трассировки лучей.

Касательно производительности преимущества на стороне DX12, особенно при обработке высокополигональных моделей и больших пространств, он эффективнее задействует вычислительные мощности железа, в том числе благодаря VRS, Sampler Feedback и Mesh Shading.

12-я редакция API увеличивает нагрузку на процессор, но распределяет её более равномерно, чем предшественник – не нагружает одно ядро до максимума, заставляя остальные простаивать или работать налегке. Наибольший прирост заметят владельцы процессоров с медленным одним ядром, в первую очередь это касается чипов от AMD.

Игровые тесты

В играх разница между двумя версиями API в высоконагруженных сценах может достигать 40 – 80% по частоте кадров. Процессор при переходе на DX12 нагружается сильнее, но для обработки графики задействуется больше потоков / ядер, а не одно.

В старых и однопоточных игрушках, где производительности одного потока процессора хватает, и на CPU с очень мощным одним ядром зачастую выигрывает DirectX 11, хотя отличие редко превышает десяток процентов. Всё зависит от конкретной игры, конфигурации системы, режима и, основное, видеокарты.

Как заставить игры использовать DX11?

Atomic Heart, Fortnite, PUBG, Ведьмак 3 – все поддерживают DirectX12 и запускаются с применением этого API, но порой появляется необходимость поиграть с применением 11-й версии. Для этого откройте свойства ярлыка игрушки, во вкладке «Объект» допишите -dx11 через пробел после пути к файлу и сохраните.

Свойства ярлыка

Также выбрать используемый API можно в настройках большинства игр, если они запускаются.

Игра Control вышла на DirectX 11 и 12, но вскоре разработчик удалил поддержку устаревающего API, лишив владельцев старых видеокарт (не совместимых с DX 12) возможности играть. Спустя пару часов после такого решения вышло очередное обновление, возвратившее DirectX 11 обратно.

Оправдан ли переход на DirectX 12: стоит ли его использовать?

Определённо стоит, но см. раздел с игровыми тестами. Если у вас процессор с высокопроизводительным однопоточным режимом, возможно, играть лучше на DirectX 11. В остальных случаях, за редким исключением, эффективнее новый API. AMD уделила ему большое внимание, поэтому видеокарты Radeon лучше себя показывают в DX12, чем конкуренты – дают большую прибавку в производительности.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • G lens 2579 hd720p драйвер windows 10
  • Как проверить производительность видеокарты на windows 10
  • Как вывести матрицу в windows forms
  • Системе windows требуется драйвер с цифровой подписью windows 7 решение
  • Amd sata ahci driver windows 10 x64