Notebookcheck Logo

Есть ли смысл в DirectX 12? Разработчик игр делится мнением

Teaser
На конференции GDC 2017, Юрген Катсман (Nixxes) поделился опытом портирования игр с DirectX 11 на DirectX 12. Разработчик игр Nixxes реализовал рендеринг с DirectX 12 в Deus Ex: Mankind Divided и Rise of the Tomb Raider.

Юрген Катсман (Jurjen Katsman), исполнительный директор разработчика игр Nixxes, рассказал о ряде проблем, с которыми столкнулась его компания при переходе с DirectX 11 на DirectX 12. Он сказал, что это вовсе не тривиальная задача, а весьма сложный процесс - создание кода, оптимизированного для DirectX 12, занимает много времени. Особенно в начале 2016, когда Nixxes стала одним из первых разработчиков игр, решивших реализовать поддержку DirectX 12, и столкнулась со множеством трудностей: отсутствующие инструменты отладки, неполная документация, а также проблемы с драйверами привела к задержке публикации обновлений с поддержкой DirectX 12 для обеих игр.

Даже сейчас, когда ситуация по всем перечисленным выше пунктам существенно улучшилась, всё равно осталось много моментов, которые негативно влияют на производительность и сложность. Например, управление памятью - особо проблемная область. Для DirectX 12 требуется больше памяти, чем DirectX 11, и превышение физического объема памяти видеоадаптера вызывает проблемы. Так как DirectX 12 - низкоуровневый API, то код необходимо тестировать на множестве аппаратных конфигураций, поскольку встречаются случаи падения производительности на некоторых конфигурациях (отличных от использовавшихся при разработке - разных ценовых категорий). Более того, выигрыш от использования DX12 может быть не так заметен при использовании высоких настроек, быстрых процессоров, или игре на высоких разрешениях.

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

В другой презентации, разработчик из Ubisoft (Assassin's Creed) тоже упомянул, что разработка под DX 12 - тяжёлый труд. Только лишь переход на эту версию API, без какой-либо оптимизации, приведёт к существенному падению производительности (в их случае - 200%, как указано на слайде).

Положительный эффект от DirectX 12 есть в случае SLI или Crossfire

Возможность использования нескольких графических адаптеров (Multi GPU) - одно из ключевых преимуществ DX12. Разработчики в целом довольны возможностями прямого управления в конфигурациях с несколькими адаптерами. Режим AFR (alternate frame rate) в драйвере (SLI и CrossFire в DirectX 11) приводит к непредсказуемым результатам, неэффективному расходу ресурсов основного процессора, а также слабо контролируем, уточнил Катсман. Более того, он сказал, что объединение памяти (memory stacking, использование всей памяти обоих видеоадаптеров, без повторения данных) не будет реализовано. Это непростая задача, а рынок не так велик, чтобы оправдать инвестиции (время и деньги) в решение этой проблемы. 

Рост производительности до 10 %

Другой большой проблемой DirectX 12 является надутый пузырь ожиданий. Катсман говорит, что многие пользователи рассчитывают на приличный рост производительности, в то время как реальный рост не превысит 10%. Именно это, в сочетании с высокой трудоёмкостью создания качественно оптимизированного кода для DirectX 12, ставит вопрос ребром - а стоит ли DirectX 12 того? "Это хороший вопрос", отвечает Катсман, хотя он видит ответ скорее положительным. В конечном итоге, ожидания к DirectX 12 немного завышены. Создание кода для этого низкоуровневого API требует больших трудозатрат, а пользователям не стоит рассчитывать на существенный рост производительности.

 
 
 
 

Подробнее

Презентации GDC 2017:

"Advanaced Graphics Tech: How to Thrive on the Bleeding Edge Whilst Avoiding Death by 1000 Paper Cuts" by Jurjen Katsman, CEO Nixxes

"Advanced Graphics Tech: Moving to DirectX 12: Lessons Learned"

+ Pressemeldung: Bitte hier aufklappen
Этот важный материал точно понравится твоим друзьям в социальных сетях!
Mail Logo
'
Klaus Hinum / Andrei Manzhov, 2017-02-28 (Update: 2017-02-28)