Что лучше vulkan или directx 12

Обновлено: 07.07.2024

Интерфейсы прикладного программирования (API) долгое время оставались самым консервативным компонентом 3D-графики. Стандарт Direct3D 11 был представлен еще в 2008 году, и до сих пор основная масса новых игр на ПК использует его в качестве основного и в подавляющем большинстве случаев единственного API. Этот островок стабильности в чрезвычайно быстро развивающейся индустрии, какой являются компьютерные игры, образовался отнюдь не из-за традиционализма разработчиков ПО или производителей железа. Напротив, единый стандарт Microsoft, который вытеснил из большой игры некогда могущественного соперника (OpenGL), дал возможность всем участникам рынка сконцентрировать усилия на своих прямых задачах без необходимости оптимизировать драйверы, архитектуру GPU и игровые движки под несколько API одновременно (как в былинные времена под Glide и популярный OpenGL).

Недавние потрясения в этой сфере, связанные с названиями DirectX 12 и Vulkan, вызваны, по сути, усилиями единственной компании — AMD, которая в 2013 году выпустила собственный интерфейс программирования Mantle в сотрудничестве с DICE, автором игровой серии Battlefield. В данный момент работа над Mantle прекращена, но оба универсальных API нового поколения заимствовали идеи AMD и преследуют ту же цель — более эффективно использовать вычислительные ресурсы, которые имеются в распоряжении современных GPU.

Несмотря на столь привлекательную идею Direct3D 12 (здесь и далее мы будем говорить именно о графической библиотеке в составе DirectX) и Vulkan, темп внедрения новых API оставляет желать лучшего даже по сравнению с Direct3D 11, которому потребовался чрезвычайно долгий срок, чтобы целиком переманить разработчиков с Direct3D 9. И все же создатели значительного числа громких и высокобюджетных проектов последних двух лет внедрили поддержку Direct3D 12 или Vulkan по крайней мере в виде экспериментальной или побочной функции. В конце концов, методика тестирования GPU на 3DNews уже по большей части состоит из игр с поддержкой этих API. Подходящее время для того, чтобы провести исследование и сделать промежуточные выводы о том, насколько в действительности полезны DirectX 12 и Vulkan для производительности современного железа.

О принципах, лежащих в основе Direct3D 12, и его отличиях от предыдущей версии API Microsoft, мы писали в 2014 году, когда стандарт находился на ранней стадии разработки и многие из его особенностей еще не были финализированы. Главное, что изменилось в облике Direct3D 12 с тех пор, — это набор дополнительных функций рендеринга, открытых для графических процессоров с теми или иными аппаратными возможностями.

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

Самой привлекательной чертой Direct3D 12 и Vulkan является быстрая подготовка т. н. draw call. В то время, когда AMD стремилась популяризировать Mantle, множество людей, ранее далеких от программирования компьютерной графики, были вынуждены познакомиться с этим термином. В 3D-рендеринге так называется команда, требующая создать единственную полигональную сетку (mesh). В играх каждая модель персонажа, юнита и практически любого независимого объекта представляет собой mesh. Следовательно, чем больше таких объектов присутствует на экране, тем больше draw calls должен отдать центральный процессор. Короткая подготовка draw call в Direct3D 12 при прочих равных условиях снижает нагрузку на CPU, сокращает время бездействия графического процессора и в результате дает возможность выводить больше объектов на экран. Помогает и распределение нагрузки в многоядерной системе, которое в Direct3D 12 происходит более эффективно.


Многоядерные CPU в Direct3D 12

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

Direct3D 12 принес массу функций рендеринга, описанных в рамках feature levels 12_0 и 12_1. Но в отличие от предыдущих итераций Direct3D, 12-я версия предназначена не для того, чтобы явить миру нечто ранее невиданное (как это было с шейдерами в Direct3D 8 и тесселяцией полигонов в Direct3D 11). Действительно, некоторые возможности feature levels 12_0 и 12_1 повышают качество определенных эффектов (к примеру, связанных с прозрачными текстурами), а иные используются в перспективных алгоритмах рендеринга (см. описание VXGI в нашем обзоре GeForce GTX 980 ). И все же большинство пунктов feature levels 12_0 и 12_1 служит для того, чтобы графический процессор выполнял быстрее ряд уже известных задач, которые в противном случае создают большую нагрузку на пропускную способность блоков наложения текстур, шину памяти и пр.

В принципе, дополнительная вычислительная мощность, которую высвобождает новая версия API, сама по себе позволяет обогатить игровую графику более детализированными текстурами и объектами. Более того, в некоторых играх под Direct3D 12 и Vulkan геймплей тесно связан с выбором API (как в Ashes of the Singularity, которая за счет множества юнитов на экране создает огромное количество draw calls). Но если поставить вопрос в формулировке «Станет ли игра выглядеть лучше, если включить в ней Direct3D 12 или Vulkan?», то на данный момент ответ будет в подавляющем большинстве случаев отрицательным. Масштаб внедрения новых API все еще слишком мал, а железо на руках пользователей слишком разнообразно, чтобы разработчики игр открыли для видеокарт, хорошо работающих под Ditect3D 12 и Vulkan, эксклюзивный доступ к заметной части визуального контента.


Современные GPU лишь в силу привычки называются графическими процессорами. Архитектура, состоящая из большого количества исполнительных блоков (ALU, потоковых процессоров или CUDA-ядер, в терминологии различных производителей), подходит для исполнения любых программ, легко разделяющихся на независимые друг от друга цепочки операций (GP-GPU, General Purpose GPU) — будь то промышленные задачи, майнинг криптовалюты, машинное обучение и т. д.

Методы GP-GPU применяются и в играх (по меньшей мере с того времени, когда NVIDIA купила компанию — создателя «физического ускорителя» Ageia и адаптировала ее API PhysX для работы на графических процессорах), но ни одна из коммерческих игр еще не может похвастаться тем, что раскрыла потенциал неграфических расчетов в такой степени, как «демки» PhysX, которые периодически демонстрирует NVIDIA. Причина лежит на поверхности: даже лучшие GPU не обладают избытком ресурсов для того, чтобы действительно масштабные вычисления игровой физики не уничтожили частоту смены кадров. Тем более в то время, как перед разработчиками ПО и железа открылись более заманчивые перспективы — разрешение сверхвысокой четкости и VR.

Однако актуальные и потенциальные функции вычислений общего назначения в современных играх не ограничиваются физикой. SSAO (Screen-Space Ambient Occlusion), локальные отражения в экранном пространстве (Screen-Space Reflections), генерация карт теней, различные модели глобального освещения и пр. могут быть реализованы в качестве методов GP-GPU. Нетрудно заметить, что в данном случае отсутствует принципиальная граница между задачами двух типов. Она существует лишь на уровне архитектуры приложения и API, когда графика и вычисления представляют собой отдельные очереди инструкций. Именно одновременное исполнение множественных очередей инструкций лежит в основе того, что называют (не вполне корректно, но об этом позже) асинхронными вычислениями.


В рамках Direct3D 11 существует единственная очередь инструкций для рендеринга графики. И как бы тщательно ни была оптимизирована архитектура GPU, в процессе рендеринга неизбежно возникают «пузыри», когда шейдерные ALU простаивают, в то время как свою работу выполняют другие компоненты процессора — блоки наложения текстур, ROP, шина памяти и т. д.

В свою очередь, Direct3D 12 и Vulkan позволяют создать две отдельные очереди — для графики и вычислений соответственно (не считая очереди для передачи данных по шине PCI Express), а задача распределения ресурсов GPU между ними ложится на сам процессор и его драйвер, которые следят за возникновением «пузырей» в той или иной очереди и эффективно их закрывают за счет инструкций из соседней очереди. В общих чертах подход аналогичен функции Hyper-Threading центральных процессоров.

Прим.: на самом деле в Direct3D 12 и Vulkan можно создавать множественные очереди всех трех типов — в зависимости от того, сколько поддерживает GPU.

Осталось пояснить, почему термин «асинхронность» не лучшим образом описывает то, что происходит в процессе рендеринга с двумя очередями инструкций, которые мы осторожно назвали отдельными, но не независимыми. Корректный (и официальный для Direct3D 12) термин — Multi-Engine. Дело в том, что те процедуры, которые исполняются в «графической» и «вычислительных» очередях Direct3D 12 или Vulkan, как правило, содержат взаимные зависимости данных: исполнение инструкций в одной очереди должно быть остановлено, пока не будет получен результат определенной инструкции из другой очереди.

В таком случае можно говорить лишь об одновременном (concurrent), но не асинхронном (независимом по времени завершения) исполнении. Примером истинной асинхронности является фоновый процесс с низким приоритетом, протекающий одновременно с рендерингом кадра, — такой, как декомпрессия ресурсов, обновление карт теней в моделях глобального освещения и пр. (см. слайд AMD выше). Таким образом, термин «асинхронные вычисления» применим к узкому кругу задач, в то время как понятие Multi-Engine описывает одновременное исполнение нескольких очередей вычислительных инструкций безотносительно к структуре зависимостей между ними.


«Асинхронные вычисления» не всегда асинхронны

Рассмотрим животрепещущий вопрос практической реализации Multi-Engine. Популярное мнение гласит, что а) графические процессоры AMD выигрывают от применения Multi-Engine, в то время как чипы NVIDIA (включая Pascal) не могут столь же эффективно использовать его в силу архитектурных ограничений, б) среди архитектур NVIDIA только Pascal поддерживает Multi-Engine. Как нам предстоит убедиться, оба утверждения в целом верны, но полная картина далеко не столь однозначна.

Самый простой для анализа случай — это архитектура GCN (Graphics Core Next), на которой основаны все графические процессоры AMD последних лет, начиная с Tahiti ( Radeon HD 7950 / 7970 ) и заканчивая Vega 10 ( Radeon RX Vega 56 / 64 ). Как достоинства, так и недостатки чипов AMD в действительности располагают к применению Multi-Engine. GCN в своей основе ориентирована на вычисления GP-GPU в не меньшей степени, чем на рендеринг графики, и устроена таким образом, что добрая часть задачи насыщения GPU параллелизмом решается на уровне «железа», а не драйвера или приложения. Даже самые ранние чипы GCN обеспечивают одновременное исполнение нескольких очередей «вычислительных» команд одновременно с очередью рендеринга графики за счет командных процессоров двух типов — GCP (Graphics Command Processor) и ACE (Advanced Compute Engine). А начиная с третьего поколения архитектуры (чипы Tonga и Fiji ), GCN также включает раздельные планировщики для шейдерных и «вычислительных» инструкций. В результате процессор может динамически передавать вычислительные ресурсы отдельных CU (Compute Unit — блок, содержащий 64 ALU) между несколькими очередями инструкций.

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


Таким образом, управляющая логика GCN способна эффективно загружать исполнительные блоки GPU за счет инструкций из отдельных очередей, заполняя даже сравнительно небольшие «пузыри» конвейера. Итоговый прирост быстродействия зависит от того, насколько часто «пузыри» возникают в режиме одной очереди. Но ведь правда, графические процессоры AMD существенно недогружены в большинстве игр по сравнению с чипами NVIDIA, и с каждым новым поколением ситуация усугубляется. Достаточно взглянуть на Radeon RX Vega 64, которая в задачах GP-GPU по меньшей мере не уступает GeForce GTX 1080 Ti , но в играх едва справляется с GeForce GTX 1080 . GCN — «широкая» архитектура, требующая высокого параллелизма для полной нагрузки. Поэтому да, возможности Multi-Engine, которые открывают современные API, могут стать большим подспорьем для AMD — с большой оговоркой о том, что разработчики игр начнут их активно использовать.

Multi-Engine на GPU различной архитектуры: NVIDIA Kepler, Maxwell и Pascal

Ситуация с поддержкой Multi-Engine в графических процессорах NVIDIA далеко не столь прозрачна, как в случае с AMD. Материалы NVIDIA, находящиеся в широком доступе, не дают ясного ответа на все вопросы. С полной уверенностью можно говорить лишь о том, каким именно из GPU архитектур Kepler, Maxwell и Pascal вообще разрешено иметь дело со смешанной нагрузкой (графика/вычисления) под управлением Direct3D 12 и Vulkan. А наше представление о том, почему это так, а не иначе, основано по большей части на сторонних источниках и не претендует на истину в последней инстанции. Что поделать, такова политика этой компании, особенно когда речь идет о недостатках их продуктов.

В отличие от AMD, NVIDIA решила разделить свои GPU на преимущественно потребительские либо профессиональные модели, начиная с архитектуры Kepler. Первые изначально лишены массы вычислительных функций, бесполезных в игровых задачах (таких как быстрое исполнение расчетов двойной точности). Кроме того, на пути от архитектуры Fermi (GeForce 400/500) к Kepler, а затем Maxwell разработчики последовательно сокращали управляющую логику GPU, переложив часть функций на драйвер.

Тем не менее поддержка смешанной нагрузки даже в массовых чипах NVIDIA значительно расширилась со времен Kepler. «Мелкие» чипы архитектуры Kepler (GK10X, GeForce GTX 680 и ниже, а также GeForce GTX 770) способны работать с единственной очередью команд, будь то графика или чисто вычислительная задача (ни о каком Multi-Engine речи не идет). В «большом» Кеплере (GK110/210, GeForce GTX 780 / 780 Ti и GeForce GTX TITAN ) и чипах Maxwell первого поколения (GK107, GeForce GTX 750/ 750 Ti ) внедрили отдельный блок для приема «вычислительных» очередей Hyper-Q, но отдельная «вычислительная» нагрузка одновременно с графикой возможна только под проприетарным API CUDA. Кроме того, «вычислительная» очередь может задействовать один и только один из 32 слотов блока CWD (CUDA Work Distributor), распределяющего цепочки операций между отдельными SM.

Динамическое распределение мощностей между графической и «вычислительной» очередями появилось только в Maxwell второго поколения (серия GeForce 900), но существует критически важное ограничение: перераспределение происходит лишь на границе draw call, а значит, драйверу нужно выделить необходимую для той или иной задачи группу SM (Streaming Multiprocessor, блок, в который организованы CUDA-ядра) заранее. Отсюда возникают ошибки планирования, которые невозможно устранить на лету, и даже при идеальном предсказании эвристики драйвера Maxwell будет пропускать мелкие «пузыри» конвейера. Кроме того, Maxwell несет тяжелые потери от смены контекста, т. к. промежуточные результаты вычислений сохраняются в (обладающей сравнительно высокой латентностью) оперативной памяти, при этом происходит полная очистка кеша L1 и разделяемой памяти GPU. В таких условиях быстродействию не настолько сильно вредит достаточно короткий простой отдельных SM, как смена контекста.

Похоже, именно эти архитектурные ограничения побудили NVIDIA заблокировать Multi-Engine в драйвере для Kepler и Maxwell. Приложение может создать сколько угодно «вычислительных» очередей, но драйвер все равно объединит их с графической очередью. По-прежнему единственная лазейка для разработчиков — это использовать CUDA, хотя на ситуацию с распределением ресурсов и смену контекста API никак не влияет.


Среди «зеленых» GPU только семейство Pascal допущено к функции Multi-Engine в Direct3D 12 и Vulkan, ибо Pascal, в отличие от Maxwell, умеет передавать ресурсы SM между очередями графики и «вычислений» динамически, не дожидаясь завершения draw call. При этом цена смены контекста осталась высокой (вплоть до 0,1 мс или 170 тыс. циклов GPU в случае GeForce GTX 1070 /1080!), а значит, Pascal по-прежнему ограничен в гибкости при работе с несколькими очередями команд по сравнению с GCN.

В итоге NVIDIA довольно сильно усложнила жизнь разработчикам приложений, желающим использовать Multi-Engine. GCN неприхотлива и предсказуема в плане смешанной нагрузки, но ускорители Radeon на рынке в меньшинстве. С другой стороны, видеокарты с графическими процессорами NVIDIA стоят во множестве игровых ПК и вдобавок принадлежат к нескольким поколениям с различным уровнем поддержки Multi-Engine и методами его использования. Но, к счастью для NVIDIA, ее продукты и без того не испытывают недостатка в быстродействии. Чипы Maxwell и Pascal в сравнении с процессорами GCN соответствующего класса имеют более «узкую» архитектуру с меньшим числом шейдерных ALU, а значит — не требуют столь же высокого параллелизма для полной загрузки.

Среди кооперативных игр прошлого года особо выделяется шутер Strange Brigade от Rebellion. Это бодрый боевик с налетом стилистики Индианы Джонса, который сочетает отстрел толп монстров с решением головоломок. Визуально игра выглядит весьма неплохо, при этом она поддерживает только API Vulkan и DirectX 12, обходясь без популярного DirectX 11. Это вызывает определенный технический интерес. А наличие встроенного игрового бечнмарка позволяет удовлетворить это любопытство и сравнить возможности разных видеокарт в доступных API. Этим мы и займемся в данном обзоре. Протестируем бюджетные модели и топовые решения в разных разрешениях и разных API.

Тестирование в Strange Brigade

Игра использует собственный движок Rebellion под названием Asura Engine. Он выдает крупные локации с высокой дальностью прорисовки и обилием мелких деталей. Большие пространства с растительностью и хитросплетением руин выглядят весьма привлекательно.

Тестирование в Strange Brigade
Тестирование в Strange Brigade
Тестирование в Strange Brigade

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

Тестирование в Strange Brigade
Тестирование в Strange Brigade
Тестирование в Strange Brigade

Участники тестирования

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

Новое поколение NVIDIA представлено рефереренсной видеокартой GeForce RTX 2080 Ti Founders Edition.

Видеокарта ASUS DUAL-RTX2080-O8G заменяет GeForce RTX 2080 Founders Edition.

Тестирование в Strange Brigade

Присутствует флагман старого поколения — GeForce GTX 1080 Ti.

Тестирование в Strange Brigade

Также в тестировании примет участие простая версия GeForce RTX 2070 в лице MSI GeForce RTX 2070 Armor 8G.

Тестирование в Strange Brigade

Со стороны AMD единственным высокопроизводительным вариантом является Radeon RX Vega 64 референсного дизайна. Тестирование проводились со стандартным BIOS в обычном сбалансированном режиме (настройки по умолчанию).

Тестирование в Strange Brigade

Полный список участников приведен ниже:

Все видеоадаптеры приводились к стандартным частотам, чтобы соответствовать референсным вариантам. Участники протестированы в номинале и в разгоне. В простых режимах старшие модели задействованы лишь при стандартных частотах.

Тестовый стенд

Конфигурация тестового стенда следующая:

  • процессор: Intel Core i7-6950X (3.0@4,1 ГГц);
  • кулер: Noctua NH-D15 (два вентилятора NF-A15 PWM, 140 мм, 1300 об/мин);
  • материнская плата: MSI X99S MPower (Intel X99);
  • память: G.Skill F4-3200C14Q-32GTZ (4x8 ГБ, DDR4-3200, CL14-14-14-35);
  • системный диск: Kingston SSDNow KC400 (512 ГБ, SATA 6Gb/s);
  • дополнительный диск: WD Red WD30EFRX (3 ТБ, SATA 6Gb/s, 5400 об/мин);
  • блок питания: Seasonic SS-750KM (750 Вт);
  • монитор: ASUS PB278Q (2560х1440, 27″);
  • операционная система: Windows 10 Pro x64;
  • драйвер Radeon: AMD Adrenalin Edition 18.10.2;
  • драйвер GeForce: NVIDIA GeForce 416.34.

Для тестов задействован встроенный бенчмарк, который прогонялся по семь раз.

Установлено максимальное качество графики для всех разрешений. Одинаковые настройки для Vulkan и DirectX 12, менялся лишь активный API.

Начнем с разрешения 1920x1080. В этом режиме протестированы графические ускорители среднего класса и бюджетные решения.

Тестирование в Strange Brigade

Тестирование в Strange Brigade

Результаты в двух API немного различаются. Общая тенденция такова, что в DirectX 12 средняя частота кадров ниже, а в Vulkan немного ниже минимальный fps. Приемлемые показатели показывают даже GeForce GTX 960 и GeForce GTX 1050 Ti. Вот только при 2 ГБ видеопамяти игра не подгружает детализированные текстуры, поэтому все бюджетные решения демонстрируют более «мутную» картинку. В итоге минимальным вариантом для игры является GeForce GTX 1050 Ti 4GB или аналогичные ускорители старых поколений. А общая загрузка видеопамяти может достигать 4–5 гигабайт. GeForce GTX 1060 6GB оказывается слабее Radeon RX 480/580, но все эти видеокарты легко обеспечивают производительность выше 60 fps.

Переходим к разрешению 2560x1440. В список добавлены старшие графические ускорители.

Тестирование в Strange Brigade

Тестирование в Strange Brigade

Более высокий средний fps наблюдается в API Vulkan. Решения AMD при переходе к DirectX 12 чуть увеличивают минимальный показатель, а у GeForce ситуация неоднозначная. Radeon RX 480 сохраняет небольшое преимущество над GeForce GTX 1060. В целом даже эти участники способны обеспечить приемлемую производительность в режиме WQHD. GeForce RTX 2070 уже выдает под 100 fps, обгоняя Radeon RX Vega 64. У GeForce RTX 2080 небольшое преимущество над GeForce GTX 1080 Ti, которое наиболее заметно в среде Vulkan. Показатели GeForce RTX 2080 Ti рекордные, отрыв от предшественника GeForce GTX 1080 Ti от 32% до 40% и выше.

Тестирование в Strange Brigade

В разрешении 4K можно играть на GeForce RTX 2070, на несколько процентов быстрее Radeon RX Vega 64. GeForce RTX 2080 FE быстрее младшего брата на 25–30%. Показатели GeForce RTX 2080 Ti приближаются к 90 fps. Загрузка видеопамяти в высоком разрешении может достигать 7 ГБ.

Выводы

Strange Brigade демонстрирует умеренные системные требования. Если немного убавить максимальное качество графики (сглаживание, эффект Motion Blur), то можно играть на GeForce GTX 1050 Ti. Старые бюджетные решения с малым объемом памяти будут демонстрировать мутные текстуры, но при наличии 4 ГБ никаких проблем не будет. Radeon RX 580 или GeForce GTX 1060 позволяют не только играть в Full HD, но и при более высоком разрешении. А вот 4K по силам только видеокартам старшего ценового сегмента, с чем легко справится GeForce RTX 2070 и более мощные модели NVIDIA. Radeon RX Vega 64 показывает максимальную эффективность в 4K, обгоняя в этом режиме GeForce RTX 2070. Старый флагман GeForce GTX 1080 Ti немного уступает GeForce RTX 2080, но без серьезного разрыва. GeForce RTX 2080 Ti обгоняет GeForce GTX 1080 Ti на 30–40%.

Производительность в Vulkan и DirectX 12 различается слабо, хотя первый режим стабильно обеспечивает рост средней частоты кадров у всех видеокарт. В любом случае Vulkan является более оптимальным API, поскольку обеспечивает работу игры в разных операционных системах, а DirectX 12 поддерживается только Windows 10.


Выход Red Dead Redemption 2 на PC стал одним из самых главных событий осени, и коллектив Digital Foundry выпустил сразу два ролика с подробным разбором настроек и оптимизации игры. Вместе они идут 50 минут, но с нашим вы можете сэкономить время и сразу же узнать все самое важное.


  • Эксперты не согласны с критикой пользователей по поводу того, что RDR2 плохо оптимизирована и тормозит даже на мощных компьютерах вне зависимости от настроек.
  • Как и в случае с ПК-версией Grand Theft Auto 5, RDR2 для персональных компьютеров сделана «на вырост», то есть с учетом будущих поколений игровых комплектующих. В основном видеокарт.
  • Главное преимущество PC-версии заключается в широких возможностях масштабирования под разное «железо». При этом высшая граница на текущий момент едва ли достижима даже при использовании самых лучших видеокарт.
  • Вместо того, чтобы предоставить владельцам ПК графику, аналогичную консолям, Rockstar Games предпочли выпустить максимально красивую и гибкую версию игры. К сожалению, многие не поняли этой идеи.
  • Тем не менее, эксперты Digital Foundry не отрицают, что релизная версия игры действительно страдала от вылетов и проблем с лаунчером от Rockstar. Однако первый патч устранил большую часть из них.

Даже i7-8700K и GTX 2080 Ti не позволяют играть в RDR2 на ультра-настройках в 60 FPS, и это в 1800p, то есть о 4K даже и речи не идет

Даже i7-8700K и GTX 2080 Ti не позволяют играть в RDR2 на ультра-настройках в 60 FPS, и это в 1800p, то есть о 4K даже и речи не идет Даже i7-8700K и GTX 2080 Ti не позволяют играть в RDR2 на ультра-настройках в 60 FPS, и это в 1800p, то есть о 4K даже и речи не идет
  • Многие вылеты связаны с нехваткой памяти — причем как видеопамяти, так и оперативной памяти. Увеличение файл подкачки позволяет избежать вылетов, но снижает производительность.
  • Многие настройки на «высоких» не рассчитаны на бюджетный сегмент. «Ультра» кладут на лопатки даже видеокарты из премиум-сегмента.
  • Графика на Xbox One X приблизительно эквивалентна «среднему» пресету ПК-версии.
  • Для того, чтобы получить стабильные 60 кадров в секунду на протяжении 99% времени в игре, сгодится даже не самая новая видеокарта RX 580 от AMD, однако Red Dead Redemption 2 довольно требовательна к процессору.
  • Игра эффективно использует 8 потоков процессора, и только при их наличии способна выдать картинку лучше, чем на консолях.

Если вы считаете, что RDR2 плохо оптимизирована, то взгляните, как GTX 970 выдает стабильные 30 кадров в секунду в самой ресурсоемкой локации игры

Если вы считаете, что RDR2 плохо оптимизирована, то взгляните, как GTX 970 выдает стабильные 30 кадров в секунду в самой ресурсоемкой локации игры Если вы считаете, что RDR2 плохо оптимизирована, то взгляните, как GTX 970 выдает стабильные 30 кадров в секунду в самой ресурсоемкой локации игры
  • В игру встроен очень качественный тест производительности, который охватывает все основные локации в игре и позволяет довольно точно оценить производительность на тех или иных настройках.
  • Одна из главных сложностей в настройке RDR 2 заключается в том, что в ней нет привычных геймерам базовых пресетов графики. Из-за этого многие люди сталкиваются с трудностями, так как в игре более двух десятков графических настроек.
  • Игра поддерживает два графических API — Vulkan и DirectX, разница в работе которых составляет всего несколько процентов.
  • Вне зависимости от производителя видеокарты (AMD или Nvidia), графическое API Vulkan показало лучший фреймрейт.
  • При использовании DirectX 12 на некоторых видеокартах в игре наблюдаются частые фризы. Это еще одна причина использовать Vulkan.

Разницы между DirectX 12 и Vulkan почти нет, но вторая опция все же чуть-чуть производительней

Разницы между DirectX 12 и Vulkan почти нет, но вторая опция все же чуть-чуть производительней Разницы между DirectX 12 и Vulkan почти нет, но вторая опция все же чуть-чуть производительней
  • Для того, чтобы комфортно играть в 30 FPS с графикой, которая эквивалентна картинке на Xbox One X, достаточно даже старенькой GTX 970. Однако процессор все равно понадобится довольно мощный.
  • Из всех консольных версий Red Dead Redemption 2 самая лучшая и стабильная на Xbox One X, в то время как на PS4 Pro часто наблюдаются падения до 28 FPS.
  • Некоторые эффекты в консольных версиях игры хуже, чем самые низкие настройки этих же эффектов в PC-версии.
  • RX 580 от AMD на 8 Гб выдает на 10-20% больше кадров в секунду по сравнению с ценовым аналогом GTX 1060 на 6 Гб от Nvidia. Чтобы получить те же результаты на видеокарте от «зеленых», требуется как минимум GXT 1660.

Как оптимизировать Red Dead Redemption 2

Как уже было отмечено выше, из всех консольных версий игры наилучшую производительность показала та, что доступна на Xbox One X. И именно ее команда Digital Foundry взяла за основу при тестировании игры. Цель второго видео заключалась в том, чтобы протестировать каждую из графических опций ПК-версии и соотнести ее с тем, что можно увидеть на Xbox One X.

В ходе тестирования выяснилось, что многие опции, доступные в Red Dead Redemption 2 на PC, просто-напросто отключены на Xbox One X: сглаживание FXAA и MSAA, солнечные лучи высокого разрешения, полноэкранное SSAO, длинные тени и повышение четкости сглаживания TAA. При этом на «Ультра» работают лишь две — качество текстур и детализация геометрии.

А это полный перечень оптимизированных графических настроек от Digital Foundry, которые очень близки к картинке на Xbox One X:

  • Режим экрана: Полноэкранный;
  • Вертикальная синхронизация: Вкл.;
  • Тройная буферизация: Вкл.
  • Качество текстур: Ультра;
  • Анизотропная фильтрация: X4;
  • Качество освещения: Средне;
  • Качество глобального освещения: Средне;
  • Качество теней: Высоко;
  • Качество далеких теней: Низко;
  • Затенение SSAO: Средне;
  • Качество отражений: Низко;
  • Качество зеркал: Высоко;
  • Качество частиц: Средне;
  • Качество тесселяции: Средне;
  • Сглаживание TAA: Средне;
  • Сглаживание FXAA: Откл.;
  • Сглаживание MSAA: Откл.
  • Дополнительные настройки: Разблокированы;
  • Графический API: Vulkan;
  • Разрешение ближних объемных эффектов: Низко;
  • Разрешение дальних объемных эффектов: Низко;
  • Качество освещения объемных эффектов: Средне;
  • Высокая детализация лучей света: Откл.;
  • Качество освещения частиц: Средне;
  • Мягкие тени: Высоко;
  • Тени травы: Низко;
  • Длинные тени: Откл.;
  • Затенение SSAO (полноэкранный режим): Откл.;
  • Качество преломления воды: Высоко;
  • Качество отражения: Низко;
  • Качество физики воды: 0;
  • Масштабирование разрешения: Откл.;
  • Резкость сглаживания TAA: 0;
  • Размытие при движении: Вкл.;
  • Сглаживание MSAA для отражений: Откл;
  • Уровень детализации геометрии: 5 (максимум);
  • Детализация травы: 1;
  • Качество деревьев: Низко;
  • Качество рельефных текстур: Средне;
  • Качество декалей: Средне;
  • Качество меха: Средне.

Для вашего удобства мы также сделали скриншоты меню настроек с этим пресетом:

Как улучшить графику RDR2 без потери FPS

  • Анизотропная фильтрация: X16;
  • Качество физики воды: 3.

Графика на вырост и как получить стабильные 60 FPS — Главное из анализа ПК-версии Red Dead Redemption 2 от Digital Foundry

И еще одна деталь: при игре в разрешении FullHD (1920x1080) или меньшего использование настроек из приведенного выше пресета заметно «мылит» картинку. Судя по всему, Rockstar затачивали рендер под 4K-разрешение. Однако про людей, которые до сих пор предпочитают разрешение 1920x1080, они тоже не забыли, добавив опцию «Резкость сглаживания TAA».

Valve: Vulkan лучше чем DirectX 12

Во время выставки SIGGRAPH прошедшей в прошлом месяце, Дэн Гинсбург из Valve поговорил о новых графических API, которые предоставят разработчикам низкоуровневый доступ к GPU и CPU, повышая производительность в играх. И, по словам разработчика, Vulkan превосходит DirectX 12.

"Если вы не слишком агрессивны, чтобы выпускать игру на DirectX 12 в этом году, я бы сказал, что нет серьезной причины использовать DX12 для вашего тайтла. Дело в том, что Vulkan справляется с той же работой на Windows 10, при этом не ограничиваясь только одной платформой. Vulkan будет работать на всем – не только Windows 10, но Windows 7, Windows 8 и Linux."


Хотя подобные комментарии от человека, который занимается Vulkan вполне естественны, API действительно превосходит DX12 или Metal. Она не рассчитана для единственной системы или производителя. Другое дело – как убедить разработчиков использовать API и показать его преимущества на практике.

Больше интересных статей на Shazoo

  • 49-летняя россиянка набрала высший уровень за варлока в Dota 2
  • Valve прекратила разработку Artifact 2.0 — обе версии стали бесплатными
  • Поклонники Dota 2 нашли секретный тизер Dragon’s Blood с Террорблейдом
  • Первый трейлер аниме-сериала DOTA: Dragon’s Blood от Netflix
  • Ютубер уже 1204 дня выпускает ежедневные апдейты Half-Life 3


33 Комментария

Правильно. Ничего толкового в DX12 и не могло быть. Крутятся на одном месте.. Ох и Майки.

@SeF1988, DX 12 тоже отличный, просто только доступен на десятой винде.

@Lazer, судя по технодемо, новый директ не удивил. По этому и не удивился, что Вулкан лучше. Скажем так, от 12-й версии, ожидал куда большего. Про Metal не в курсе.

Ждем независимого сравнения

Хоть кто нибудь видел этот самый вулкан? Демо? Сравнения? Пустая болтовня.

То что он пойдёт на 7,этим меня зацепил. на 10 Винду не хочу пока

@Tahakaro, PowerVR Android demo как бы плиззз. Вы же наверное видели Mantle? То же только лучше. Хотя да, сравнения с DX12, безусловно, интересно увидеть.

Естественно лучше, ведь dx12 - тот же mantle, только доработанный

@SeF1988, пока ещё игры не вышли на новых API, так что судить рано. Ещё надо дождаться видеокарт с полной поддержкой.

вэлв готовит нечто грандиозное. все эти вулканы, соурс2 и вайвы не для пустого словца. думается третья часть получится крышесносной игрушкой. как в 2004.

@Lazer, ну, по хорошему, да. Пока, это дележ шкуры не убитого медведя.

воу воу, двух-часовой ролик с выставки?! я не, не смотрю. некогда мне(.

@freawertyhn, я тоже не смотрю, никогда и некогда.

@Nerubarus, DX12 это DX12 и к mantle отношения не имеет, скорее всего опечатались, Vulkan это доработанный Mantle

@SeF1988, Нужно адекватно сравнение, какие-то бенчмарки чтоб вышли под это все дело, пока рано говорить. К примеру синтетические тесты того же DX12 очень даже впечатляют, не знаю как можно было остаться равнодушным когда такая огромная разница в производительности на одном железе :)
У DX12 есть одно преимущество, под него 100% будут разрабатываться игры и он точно пойдет в массы, а с вулканом может быть история как с мантл, что широкого распространения не получит

@Lazer, какой десятой слушать меньше майков надо и маркетологов , уже щас его спокойно можно поставить на 8.1. P.s. А если почитать wzor то и на 7 есть возможность установки dx12.

@Lazer,
Пока DX 12 вообще не доступен. Его на сегодняшний день не поддерживает не одна игра..

@SeF1988, ожидал новых визуальных эффектов? Основная цель новых API вроде как повышение "КПД" GPU, чтобы терафлопсы в трубу не вылетали.

@devlink, То что он кроссплатформенный это замечательно но это не совсем уж аргумент, посмотрите долю рынка виндоуса, там что-то около 85%, это достаточно большой процент чтобы не замарачиваться с кроссплатформенностью DX12.
Проф. софт это не показатель, т.к. это достаточно малая доли рынка, тут совсем иные правила, в общем и графические карты для определенных задач берутся совсем иные (к примеру nvidia quadro или как они там я не помню уже)

Я ж не против, я всегда рад новым технологиям я только за любое развитие и креатив, но я не верю что DX12 провалится, в то же время со всеми громкими анонсами и сколько было уже "убийц" DX, все они канули в лету, поэтому я вполне склонен допускать что та же участь ожидает и вулкан. На крайняк МС будет приплачивать разработчикам движков за то чтобы DX12 был приоритетным АПИ.
Небольшая ремарка я говорю про игры, опенгл (и его модификации/ответвления) используется и будет использоваться, но он не стал (и я думаю так и не станет) приоритетным АПИ в игровой индустрии.

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

@Exile, мантл как минимум будет ведущим API во всех linux и android играх, ибо это замена openGL от тех же khronos-group, а так же вроде как никто не запрещает его использовать как и их же опенгл в IOS, так что вполне может стать ведущим и на этой платформе, т.к. тот же Metal от Apple пока есть ровным счетом нигде и перспективы его не менее сомнительны, чем у Вулкана. Вопрос стоит лишь в его доминировании на одной платформе - Windows - и именно тут и покажет время что к чему. Ну и не только время - например в UE4 уже есть DX12, в Unity будет к концу года - а об Vulkan ни у одного доступного для инди движов никакой инфы нет, так что если кто не приплатит создателям движков - то ясное дело вулканище будет в жопе на windows.

@Exile, а теперь посмотрите на долю рынка android. Опять же я не говорю, что Vulkan убьет DX12 (который пока только на Win10 у которого доля не 85%). Я за конкуренцию. Ни кто ни кого убивать не будет - битва за доли рынка только началась.

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

@Exile, в том то и дело, что dx12 и vulkan от mantle`а пошли.

@FanboyDestroyer3000, @devlink, А вы считаете что мобильные телефоны это поле боя для данных технологий? Как много крупных проектов на них выпускают? как много технологически сложных проектов там?
Нет, поле боя это ПК, в это моя точка зрения.
А на ПК у DX12 шансов занять доминирующую долю рынка намного больше.
Win10 нет, но те кто заинтересован в играх будут переходить очень быстро на Win10, основная аудитория геймеров быстро перескочат на него, особенно с учетом что Win7 сам навязывает этот переход.
Но не забывайте еще и такого факта что те кто сидят на Linux или MacOS, сделали такой выбор без оглядки на игры, а используют ПК для работы (или просто не для игр) , т.е. целевой аудитории на данных платформах практически нету.
Можете посмотреть статистику Стим ради интереса и динамику перехода пользователей на Win10, это еще до выхода игр под DX12.
Не знаю как вы а я не вижу никаких предпосылок для изменения расстановки сил на рынке, я убежден что DX будет дальше занимать лидирующие позиции, Vulcan дай бог чтобы не канул в лету как это сделал Mantle.

@Nerubarus, DX12 это просто новый виток в развитии DX, мантл максимум что промотивировал на какие-то изменения, почитайте про то сколько лет велась разработка DX12 и про его особенности и отличии от прошлых версий и поймете что мало вероятно, что Mantle оказал прямое влияние на него.
В то же время Vulcan это грубо говоря новая версия Мантл.

Ну а спецификации по Vulcan выпускать будут, как и саму литературу?

@SeF1988, смеешься?
с такой же уверенностью, небось в 200х году говорил про Дх10?

А знаешь, почему разработчики между OpenGL(вулкан) и DirectX постоянно обирали второй, хотя он только работал на винде, а первый и на винде, и на смартфонах, и на пс, и на убунте и т.д.?

Ответ очевиден - простота в использовании. ОпенГЛ очень низкоуровневый АПИ и геммороя с ним в разы больше. А если учесть, что время и так мало на разработку, то он вообще не вариант.
К тому же, выпускать на остальные платформы разработчикам не целесообразно.

А этот неудачный выпад - охота хоть как то пропиарить свой стимОС и разработку под него (напишете на вулкане, а потом портанете на нашу платформу, ну плииииииииз).

Крутятся на одном месте.. Ох и Майки.

да, уже не знаешь, что написать, чтобы обосрать их.. Дх12 - это доработанная идея Мантл. Реальных тестов Вулкана нет и продвижения так же нет (ибо его на чистом интузиазме делали). Вот и ГГ.

А знаешь почему сейчас разработчики будут использовать Дх? А потому что на одном АПИ можно написать на ПК и Х1 (2 целевые платформы из 3).

Читайте также: