Mantle и DirectX 12 vs DirectX 11: результаты тестирования на бенчмарке 3DMark API Overhead

Вслед за сравнительным тестированием интерфейсов программирования Mantle, DirectX 12 и DirectX 11 бенчмарком Star Swarm, ряд ресурсов опубликовал результаты проведенного ими испытания этих трех API еще одним тестом, 3DMark API Overhead от компании Futuremark. Его релиз состоялся позавчера. Как и Star Swarm, этот тест в режиме реального времени выводит на экране большое количество объектов (draw calls — вызовов отрисовки). Как только нагрузка на систему приводит к снижению частоты до 30 к/с, тест показывает достигнутое значение вызовов отрисовки в секунду. Делается это с целью демонстрации преимущества новейших API Mantle (компании AMD) и DirectX 12 (компании Microsoft) перед DirectX 11.

Напомним, что это преимущество состоит в низкоуровневом (в частности, минуя драйвер видеокарты) доступе к аппаратным ресурсам, благодаря которому:

  1. имеет место прямое, минуя процессор, обращение к видеокарте;
  2. генерируемые ЦПУ/процессором вызовы отрисовки (т.е. отправленные ГПУ/видеокарте задания на рендеринг графических объектов) распределяются между всеми ядрами ЦПУ;
  3. на вызов отрисовки уходит меньшее время.

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

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

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

Теперь что касается непосредственно нашего героя. От Star Swarm тест 3DMark API Overhead отличается тем, что в большей степени воспроизводит нагрузку вызовов отрисовки. Это полностью синтетический тест, в то время как Star Swarm скорее воссоздавал обычную графическую нагрузку, которая изобиловала вызовами отрисовки. Таким образом, предполагается, что разница в производительности API в этом тесте будет больше, и результаты тестов это ожидание всецело оправдывают.

Тестирование охватывает дискретные (т.е. отдельные) и интегрированные (встроенные в процессор) видеокарты. Испытание дискретных видеокарт проводилось в связке с процессором Intel Core i7-4960X с тактовой частотой 4.2 ГГц — шесть ядер его ЦПУ вполне подходят для проверки способностей по распараллеливанию вызовов отрисовки у новых API. Ниже последовательно представлены результаты теста в режиме работы двух, четырех и шести ядер процессора Intel Core i7-4960X:

Как видим, в новом тесте производительность растет пропорционально количеству ядер ЦПУ — в предыдущем тесте, напомним, прирост остановился на двух ядрах. Таким образом, 3DMark API Overhead во всей красе демонстрирует достоинства распараллеливания вызовов отрисовки между действительно всеми ядрами процессора (ЦПУ). Причем особенно ярко это проявляется именно на топовых видеокартах:

Обратите внимание, что в обоих тестах в режиме двухядерного ЦПУ производительность DirectX 12 и Mantle по сравнению с DirectX 11 вырастает не в два раза (чего можно было бы ожидать с точки зрения задействования одного дополнительного ядра ЦПУ), а в несколько раз. В нашем тесте: с 1-1.4 млн. вызовов отрисовки в однопоточном и многопоточном режиме DirectX 11 до 7.4-10.6 млн. Это связано с тем, что, как мы уже говорили выше, благодаря низкоуровневому интерфейсу вызов отрисовки занимает теперь меньшее время.

Схожие, пусть и не столь значительные, результаты были получены при сравнении всех трех API на процессорах со встроенными ГПУ. Демонстрируемое ниже превосходство моделей AMD обусловлено тем, что у них более производительные, по сравнению с Intel, графические ускорители (ситуация, аналогичная топовым дискретным видеокартам):

В очередной раз напоминаем, что Star Swarm и в особенности 3DMark API Overhead воспроизводят нагрузку именно по вызовам отрисовки, поэтому в реальных играх и более комплексных тестах достоинства новых API проявятся значительно скромнее — в лучшем случае можно рассчитывать на 1.5-кратный рост числа кадров в секунду. Но как уже говорилось выше, главной особенностью Mantle и DirectX 12 является прямой доступ к аппаратным ресурсам, что в любом случае позитивно скажется как на производительности игр на ПК, так и на процессе их портирования с консолей. Кроме того, столь значительный прирост количества вызовов отрисовки без ущерба общей производительности позволит разработчикам использовать в сценах большее количество объектов. А это наилучшим образом скажется на зрелищности и реалистичности будущих компьютерных игр.

С использованием материалов AnandTech