Поддержка многопоточной отрисовки

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

Но на этом разработчики не остановились.

Краткий обзор

До недавнего времени не было смысла вводить технологию многопоточности: большинство из игроков играли на компьютерах с двухъядерными процессорами, при этом основная нагрузка приходилась на одно из них, а на втором была непостоянна (от 40 до 70% в зависимости от конфигурации ПК).

Однако за последние пару лет количество игроков, использующих ПК с четырёх- или шестиядерными процессорами, значительно увеличилось. И эта тенденция только усиливается. Сегодня у 60% танкистов компьютеры с четырёхъядерными процессорами.

Тщательно проанализировав статистику, разработчики поняли: пришло время реализовать в World of Tanks важную технологическую возможность — полноценную поддержку многопоточной отрисовки, разработанную в сотрудничестве с компанией Intel. Но, чтобы это сделать, нам нужно было «научить» движок выполнять расчёты не поочерёдно, а одновременно на всех доступных ядрах.


Без поддержки многопоточной отрисовки:


С поддержкой многопоточной отрисовки:


Сложная, но интересная задача

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

Прирост производительности конкретного ПК будет зависеть от многих факторов, среди которых:

- версия операционной системы;

- процессор, материнская плата, видеокарта.

Также нужно понимать, что поддержка многопоточной отрисовки — это не статическая, а динамическая функция, которая на разных настройках графики даёт разный результат.

    На компьютерах со слабыми процессорами и видеокартами прирост производительности может наблюдаться, но минимальный.

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

    Если процессор многоядерный (четыре и больше ядер), но не очень мощный, а видеокарта производительная, то прирост будет заметным.

Многопоточную отрисовку оценят в том числе те, кто играет в World of Tanks на ноутбуках. Обычно в ноутбуках устанавливают многоядерные процессоры с низкой частотой и поддержкой технологии Turbo Boost. Она увеличивает напряжение на одном ядре, временно повышая его частоту и тем самым повышая его производительность, — и какое-то время для игрока всё выглядит хорошо. А потом случается перегрев и включается троттлинг, то есть принудительно ограничивается быстродействие процессора путём снижения его частоты или пропуска тактов, чтобы защитить его от чрезмерной нагрузки. Показатель FPS падает существенно, и играть становится некомфортно. Сейчас, когда мы можем задействовать три-четыре ядра, но не по максимуму, даже в случае троттлинга FPS падает незначительно. То есть играть будет комфортнее.


Часто задаваемые вопросы

Есть ли разница между многопоточностью и многоядерностью?

Многопоточность — это скорее технический термин, который используют в основном эксперты. А многоядерность — более разговорный его вариант, распространённый среди игроков.

На каких параметрах отразится поддержка многопоточной отрисовки?

Может повыситься частота кадров в секунду — всё зависит от конфигурации вашего ПК. Обратите внимание: не все компьютеры получат прирост производительности или же он может быть едва заметным.

Многопоточная отрисовка будет работать только на компьютерах с процессорами Intel?

Многопоточная отрисовка будет работать с любыми многоядерными процессорами.

Как будет реализована многопоточность для двухъядерных или одноядерных процессоров?

Так же, как и для процессоров с 4–8 ядрами. Количество ядер не имеет значения. Но чем их больше, тем лучше мы сможем использовать вычислительные возможности процессора. Если у процессора мало ядер, мы быстрее выжмем из него максимум, но, скорее всего, не сможем загрузить видеокарту на 100%.

Если моя видеокарта загружена на 100%, а процессор только на 30–40%, даст ли многопоточность прирост производительности? И не повредит ли это моей видеокарте?

В этом случае прироста производительности не будет. Не волнуйтесь, с видеокартой ничего не случится.

Увеличится ли энергопотребление компьютера?

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

Будут ли поддерживаться технологии Intel Hyper-Threading и AMD SMT?

Да, все процессоры, поддерживающие эти технологии, будут работать эффективнее.

Что дальше

Внедрение многопоточной отрисовки — важный шаг для дальнейшей работы над World of Tanks. Это решение позволит нам реализовать многопоточность в других подсистемах игры. Наша главная цель — сделать так, чтобы вы могли наслаждаться прекрасной графикой и динамичным геймплеем, не обновляя компьютер.

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